728x90
https://school.programmers.co.kr/learn/courses/30/lessons/142086
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
dictionary에 해당 알파벳의 인덱스를 넣어주고,
만약 알파벳이 없다면 -1을 answer에 넣고 현재 인덱스를 넣어줬다. [알파벳:인덱스]
알파벳이 있다면 가장 최근의 인덱스가 value로 들어있으므로 그 값을 answer에 넣어주고 현재 인덱스로 업데이트 해준다.
쉬운 문제였다!
import Foundation
func solution(_ s:String) -> [Int] {
var answer = [Int]()
var array = s.map{ String($0) }
var dictionary = [String: Int]()
for i in 0..<array.count {
var str = array[i]
if dictionary[str] == nil { //dictionary에 없으면
answer.append(-1) //처음 나왔으므로 -1
dictionary[str] = i //dictionary에 인덱스 추가하기
}else {
answer.append(i - dictionary[str]!)
dictionary[str] = i //update
}
}
return answer
}
728x90
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스/Swift] 영어 끝말잇기 (0) | 2022.12.28 |
---|---|
[프로그래머스/Swift] 다음 큰 숫자 (0) | 2022.12.27 |
[프로그래머스/Swift] 크기가 작은 부분 문자열 (0) | 2022.12.26 |
[프로그래머스/swift] 성격 유형 검사하기 (0) | 2022.12.07 |
[프로그래머스/swift] 명예의 전당(1) (0) | 2022.12.07 |