Jakorithm
article thumbnail
728x90

문제

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

 

3052번: 나머지

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

www.acmicpc.net

 

 

코드

첫 번째 줄부터 10개의 수를 입력받아 42로 나누었을 때, 서로 다른 나머지가 몇 개 있는지 출력하는 문제다.

Set 활용

fun main() {
    val mutableSet = mutableSetOf<Int>()

    repeat(10) {
        val input = readln().toInt()
        mutableSet.add(input % 42)
    }

    println(mutableSet.size)
}
  • Int 타입의 변경 가능한 Set을 초기화한다.
    • Set은 중복 값을 허용하지 않는다.
    • MutableSet으로 선언해야 값을 추가하거나 삭제, 수정을 할 수 있다.
  • 10번 반복하여 숫자를 입력받아 42로 나눈 나머지를 mutableSet에 담는다.
  • mutableSet의 크기를 출력한다.

 

Array 활용

fun main() {
    val arr = Array(10) { 0 }

    repeat(10) {
        val input = readln().toInt()
        arr[it] = input % 42
    }

    println(arr.distinct().count())
}
  • 크기가 10인 배열을 선언하여 0으로 초기화한다.
  • 10번 반복하여 숫자를 입력받아 42로 나눈 나머지를 arr에 차례대로 담는다.
  • distinct() 함수를 통해 중복을 제거하고 count() 함수를 통해 개수를 출력한다.
728x90