[백준] 그룹 단어 체커 (1316)

문제 설명

백준 1316번 문제 링크

입력 및 출력

» 입력

첫째 줄에 단어의 개수 N이 들어온다. N은 100보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에 단어가 들어온다. 단어는 알파벳 소문자로만 되어있고 중복되지 않으며, 길이는 최대 100이다.

» 출력

첫째 줄에 그룹 단어의 개수를 출력한다.

예제 입출력(테스트케이스)

입력 출력
3
happy
new
year
3
4
aba
abab
abcabc
a
1

문제 풀이 (KOTLIN)

fun main(args: Array<String>) = with(System.`in`.bufferedReader()) {
    var count = 0

    repeat(readLine().toInt()) {
        val set = mutableSetOf<Char>()
        val str = readLine()
        var prev = ' '
        var duplicated = false

        for (c in str) {
            if (prev != c) {
                if (!set.add(c)) {
                    duplicated = true
                    break
                }
            }
            prev = c
        }

        if (!duplicated) count++
    }

    println(count)
}

문제 풀이 (SWIFT)

let N = Int(readLine()!)!
var ans = 0

for _ in 0..<N {
    var set = Set<Character>()
    let str = Array(readLine()!)
    var prev = str[0]
    set.insert(prev)
    
    for i in 1..<str.count {
        if str[i] == prev {
            continue
        } else {
            let (bool, _) = set.insert(str[i])
            
            if bool {
                prev = str[i]
            } else {
                ans += 1
                break
            }
        }
    }
}

print(N - ans)

태그:

카테고리:

업데이트: