728x90
[Swift] 프로그래머스 가장 가까운 같은 글자(lv. 1)
1. 문제
https://school.programmers.co.kr/learn/courses/30/lessons/142086
2. 접근
현재 인덱스와 이전 인덱스를 잘 구분해서 계산하면 된다.
comeout 이라는 array에는 한 번이라도 등장했던 Character를 집어넣는다. 이것과 비교하여 index 차이를 answer에 집어넣거나, -1을 집어넣는다.
등장한 것과 등장하지 않은 것을 잘 구분하면 된다.
3. 코드
import Foundation
func solution(_ s:String) -> [Int] {
var answer = [Int]()
var comeout = [Character]()
var k = 0
for i in s {
if !(comeout.contains(i)) {
answer.append(-1)
} else {
answer.append(k - comeout.lastIndex(of: i)!)
}
comeout.append(i)
k += 1
}
return answer
}
728x90
'Problem Solving' 카테고리의 다른 글
[Swift] 프로그래머스 로또의 최고 순위와 최저 순위(lv. 1) (0) | 2023.02.06 |
---|---|
[Swift] 프로그래머스 - 모의고사(lv. 1) (0) | 2023.02.04 |
[Swift] 프로그래머스 [1차] 다트 게임(lv. 1) (0) | 2023.02.02 |
[Swift] 프로그래머스 푸드 파이트 대회(lv. 1) (0) | 2023.02.01 |
[Swift] 프로그래머스 실패율(2019 KAKAO Blind Recruitment)(lv. 1) (0) | 2023.01.31 |
댓글