문제
상근이는 수의 크기를 비교하는 문제를 내주었다. 첫째 줄에 상근이가 칠판에 적은 두 수 A와 B가 주어진다. 두 수는 같지 않은 세 자리 수이며, 0이 포함되어 있지 않다. 상수는 수를 다른 사람과 다르게 거꾸로 읽는다. 상수의 대답을 출력하라.
풀이
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Scanner sc = new sc(System.in);
// 나올 수 있는 나머지 가짓수 길이만큼 배열을 생성한다.
// 자바에서 배열을 생성하면 각 값은 모두 0으로 초기화된다.
int[] arr = new int[42];
int count = 0;
// 10개 숫자를 입력 받아 42로 나눈 나머지를 구한다.
// 나머지에 해당하는 배열 인덱스에 가서 들어 있는 값을 증가시킨다.
for (int i = 0; i < 10; i++) {
arr[sc.nextInt() % 42]++;
}
for (int i = 0; i < 42; i++) {
// 0이 아닌 방의 개수를 구한다.
if(arr[i] == 0)
continue;
count++;
}
System.out.println(sum);
sc.close();
위에서는 int배열을 사용하였지만 Boolean 배열을 사용할 수도 있다.. 이 방법이 훨씬 더 직관적인 것 같음
1
2
3
4
5
6
7
8
9
10
11
12
13
boolean[] arr = new boolean[42];
for(int i = 0; i < 10; i++) {
arr[sc.nextInt() % 42] = true;
}
for(boolean value : arr) {
if (value) {
count++;
}
}
System.out.println(count);