문제 링크
문제 해설
Set을 사용하여 풀 수 있는 문제다. 새로운 사람이 입장하고 각 유저들이 처음 입력하는 채팅은 모두 곰곰티콘 인사가 된다. 따라서 채팅을 입력한 유저의 닉네임을 Set에 저장하는 것에 성공하면(=채팅을 처음 입력한 유저라서 곰곰티콘으로 인사한 경우라면) count를 1 증가시킨다. ENTER가 입력되면 Set을 초기화하고 같은 과정을 수행하면 된다.
ENTER가 입력되면 새로운 Set으로 초기화하는 방법을 사용했다. clear()
메소드를 사용하게 되면 \(O(n)\)의 시간 복잡도가 걸리기 때문이다.
Code
fun main() = with(System.`in`.bufferedReader()) {
val n = readLine().toInt()
var users = HashSet<String>()
var count = 0
repeat(n) {
readLine().also {
if (it == "ENTER") {
users = HashSet()
return@repeat
}
if (users.add(it)) count++
}
}
println(count)
}
'Algorithm > BOJ' 카테고리의 다른 글
[Kotlin] 백준 1092 : 배 (0) | 2022.12.24 |
---|---|
[Kotlin] 백준 1456 : 거의 소수 (1) | 2022.12.23 |
[Kotlin] 백준 14277 : 등차 수열과 등비 수열 (0) | 2022.12.21 |
[Kotlin] 백준 9935 : 문자열 폭발 (0) | 2022.12.19 |
[Kotlin] 백준 1806 : 부분합 (0) | 2022.12.17 |
댓글