728x90
안녕하세요 코코종입니다.
어제는 바빠서... 풀다가 완료를 못한걸 마무리 했답니다.
import Foundation
func solution(_ n:Int, _ words:[String]) -> [Int] {
var answer: [Int] = [0, 0] // 탈락자 번호, 차례
var dict: [String: Bool] = [:]
let w = words.count // words의 갯수
var last = words.first!.suffix(1)
dict[words.first!] = true
for i in 1..<w {
if words[i].prefix(1) == last && dict[words[i]] == nil {
dict[words[i]] = true // 끝말잇기가 가능한 경우
last = words[i].suffix(1)
// print(words[i].prefix(1), words[i].suffix(1))
} else { // 탈락한 경우 - 끝 글자와 같지 않거나 dict에 있는거면
answer = [i%n + 1, i / n + 1]
break
}
}
return answer
}
문제는 어렵지 않았습니다. 딕셔너리에 해당 단어를 저장해뒀고, 끝말이 이어지는지, 이미 나왔던 단어가 아닌지 체크했습니다,.
탈락자 번호, 차례는 조금만 생각해보면 i%n + 1, i/n +1로 됩니다!
728x90
'알고리즘' 카테고리의 다른 글
[Swift 알고리즘] 프로그래머스 - 의상 (0) | 2023.05.05 |
---|---|
[Swift 알고리즘] 프로그래머스 - 예상 대진표 (0) | 2023.05.04 |
[Swift 알고리즘] 프로그래머스 - 배달 (0) | 2023.05.02 |
[Swift 알고리즘] 프로그래머스 - 짝지어 제거하기 (0) | 2023.05.01 |
[Swift 알고리즘] 프로그래머스 - N Queen (2) | 2023.05.01 |