나머지 성공출처다국어
한국어
시간 제한메모리 제한제출정답맞은 사람정답 비율
1 초 | 128 MB | 64903 | 38548 | 33588 | 60.133% |
문제
두 자연수 A와 B가 있을 때, A%B는 A를 B로 나눈 나머지 이다. 예를 들어, 7, 14, 27, 38을 3으로 나눈 나머지는 1, 2, 0, 2이다.
수 10개를 입력받은 뒤, 이를 42로 나눈 나머지를 구한다. 그 다음 서로 다른 값이 몇 개 있는지 출력하는 프로그램을 작성하시오.
입력
첫째 줄부터 열번째 줄 까지 숫자가 한 줄에 하나씩 주어진다. 이 숫자는 1,000보다 작거나 같고, 음이 아닌 정수이다.
출력
첫째 줄에, 42로 나누었을 때, 서로 다른 나머지가 몇 개 있는지 출력한다.
예제 입력 1 복사
1 2 3 4 5 6 7 8 9 10
예제 출력 1 복사
10
각 수를 42로 나눈 나머지는 1, 2, 3, 4, 5, 6, 7, 8, 9, 10이다.
예제 입력 2 복사
42 84 252 420 840 126 42 84 420 126
예제 출력 2 복사
1
모든 수를 42로 나눈 나머지는 0이다.
예제 입력 3 복사
39 40 41 42 43 44 82 83 84 85
예제 출력 3 복사
6
각 수를 42로 나눈 나머지는 39, 40, 41, 0, 1, 2, 40, 41, 0, 1이다. 서로 다른 값은 6개가 있다.
1
2
3
4
5
6
7
8
9
10
11
12
13
|
fun main(){
var arr = MutableList(42,{0})
for(i in 0 until 10){
val num = readLine()!!.toInt()
arr[num%42]=1
}
var count = 0
for(i in 0 until 42){
if(arr[i]==1)
count++
}
println(count)
}
|
cs |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
fun main() {
val map = HashMap<Int, Int>()
println(map)
// {}
for(i in 1..10) {
val remain = readLine()!!.toInt() % 42
map[remain] = when (map.containsKey(remain)) {
true -> map[remain]!! + 1
false -> 1
}
println(map)
/*
{39=1}
{39=1, 40=1}
{39=1, 40=1, 41=1}
{0=1, 39=1, 40=1, 41=1}
{0=1, 1=1, 39=1, 40=1, 41=1}
{0=1, 1=1, 2=1, 39=1, 40=1, 41=1}
{0=1, 1=1, 2=1, 39=1, 40=2, 41=1}
{0=1, 1=1, 2=1, 39=1, 40=2, 41=2}
{0=2, 1=1, 2=1, 39=1, 40=2, 41=2}
*/
}
println(map.keys.size)
// 6
}
|
cs |
위 코드는 이문제 풀때 Map으로 풀까 생각했는데 다른분이 Map으로 푸신게 있길래 가져왔다.
'알고리즘 공부 > 미분류' 카테고리의 다른 글
백준 10809번 with Kotlin (0) | 2021.07.08 |
---|---|
백준 10171 with Kotlin #여러줄인 긴 문자열 출력 (0) | 2021.07.07 |
백준 2908번 with 코틀린 #reversed #max(int,int) (0) | 2021.07.07 |
백준 2577번 with Kotlin (0) | 2021.07.07 |
백준 2439번 with Kotlin (0) | 2021.07.07 |