본문 바로가기
  • 개발하는 곰돌이
Algorithm/BOJ

[Kotlin] 백준 25192 : 인사성 밝은 곰곰이

by 개발하는 곰돌이 2022. 12. 21.

문제 링크

 

25192번: 인사성 밝은 곰곰이

첫번째 새로운 사람이 들어온 뒤  pjshwa, chansol, chogahui05은 모두 곰곰티콘으로 인사했다. 두번째 새로운 사람이 들어온 뒤  pjshwa와 chansol은 다시 곰곰티콘으로 인사했다.

www.acmicpc.net


 


문제 해설

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)
}

댓글