[백준 1316] 그룹 단어 체커

Junyoung Park·2022년 8월 8일
0

코딩테스트

목록 보기
534/631
post-thumbnail

1. 문제 설명

그룹 단어 체커

2. 문제 분석

딕셔너리로 풀었다.

3. 나의 풀이

import Foundation

let N = Int(String(readLine()!))!
var words = [String]()
var total = 0
for _ in 0..<N {
    let word = String(readLine()!)
    if isGroupWord(word: word) {
        total += 1
    }
}

print(total)

func isGroupWord(word: String) -> Bool {
    var wordDict = [String:Int]()
    // 해당 알파벳 -> word 내 최근 인덱스 값
    let wordArray = Array(word).map{String($0)}
    for idx in 0..<wordArray.count {
        let letter = wordArray[idx]
        let letterCnt = wordDict[letter] ?? -1
        if letterCnt == -1 {
            wordDict[letter] = idx
        } else {
            if idx - letterCnt == 1 {
                wordDict[letter] = idx
            } else {
                return false
            }
        }
    }
    return true
}
profile
JUST DO IT

0개의 댓글