[백준] 그룹 단어 체커 (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)