본문 바로가기
알고리즘

[Swift 알고리즘] 프로그래머스 - 영어 끝말잇기

by 코코종 2023. 5. 4.
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