Problem Solving
[Swift] 프로그래머스 가장 가까운 같은 글자(lv. 1)
DuncanKim
2023. 2. 3. 09:25
728x90
[Swift] 프로그래머스 가장 가까운 같은 글자(lv. 1)
1. 문제
https://school.programmers.co.kr/learn/courses/30/lessons/142086
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
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