본문 바로가기
스터디(beakjoon)

Kotlin] 백준 3052번 문제 풀이

by 김마리님 2023. 4. 25.

https://www.acmicpc.net/problem/3052

 

3052번: 나머지

각 수를 42로 나눈 나머지는 39, 40, 41, 0, 1, 2, 40, 41, 0, 1이다. 서로 다른 값은 6개가 있다.

www.acmicpc.net

 

 

풀이

더보기

원래 의도한 건 list를 10개 만들어서 나머지를 넣은 후 중복되는 값을 필터링 하고, 남은 값의 갯수를 구하는거겠지만.. 사실 hashSet을 이용하면 간단하게 해결되는 문제다. hashset은 중복되는 값을 add해도 값이 중복되어 들어가지 않는다. 

끝나고 해시 셋 크기만 추출하면 해당 문제는 완료된다.

 

import java.io.BufferedReader
import java.io.BufferedWriter
import java.io.InputStreamReader
import java.io.OutputStreamWriter

fun main(args: Array<String>) {
    question3052()
}

fun question3052() {
    var reader = BufferedReader(InputStreamReader(System.`in`))
    var writer = BufferedWriter(OutputStreamWriter(System.out))

    var hashSet = HashSet<Int>()

    for(i in 1 .. 10) {
        var number = reader.readLine().toInt()
        hashSet.add(number % 42)
    }

    writer.write("${hashSet.size}")
    writer.flush()
}
반응형