Posts 백준 알고리즘 2908번: 상수 (Java)
Post
Cancel

백준 알고리즘 2908번: 상수 (Java)

문제

상근이는 수의 크기를 비교하는 문제를 내주었다. 첫째 줄에 상근이가 칠판에 적은 두 수 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);
This post is licensed under CC BY 4.0 by the author.

⚡ 정보처리기사 필기 3장. 어플리케이션 설계

:coffee: [Java] 접근 제어자와 생성자

Loading comments from Disqus ...