반응형
이 문제는 입력된 10 가지의 값을 각자 42로 나눈 나머지를 구하여 나머지의 값이 다른 값의 갯수를 구하는 문제이다.
이 문제를 해결할 수 있는 가장 간단한 방법은 HashSet을 이용하는 것이다.
-HashSet 은 자바 Collection 중 Set 의 파생클래스이다. (Set을 집합으로 생각하면 쉽다.)
HashSet의 몇 가지 특징
-
중복되는 원소를 넣을 경우 하나만 저장한다.
-
HashSet 은 순서 개념이 없다.
-
Collections.sort() 메소드를 사용불가. (만약 정렬을 하고 싶다면 리스트로 변환 후 정렬해야한다.)
이 문제는 나머지 값이 "서로 다른" 개수를 세면 되는 것이기 때문에 HashSet 을 이용할경우 나머지 값이 HashSet 원소에 이미 저장되어있는 중복된 값일 경우 저장이 되지 않는다. 즉 문제에서의 답이 HashSet에 저장되는 HashSet의 사이즈가 되는것이다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
package exam;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.HashSet;
import java.util.Iterator;
public class buffer3052 {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
HashSet<Integer> number = new HashSet<Integer>();
/*
* 1.중복되는 원소를 넣을 경우 하나만 저장한다.
*/
for (int i = 0; i < 10; i++) {
number.add(Integer.parseInt(br.readLine())%42);
}
System.out.println(number. size());
}
}
|
cs |
반응형
'알고리즘 > 백준(BAEKJOON)' 카테고리의 다른 글
1차원 배열 8958/자바/Scanner/BufferReader (0) | 2021.08.21 |
---|---|
1546/평균/1차원 배열/자바/JAVA (0) | 2021.03.15 |
10871/X보다 작은 수/자바 /백준 (0) | 2020.08.16 |
11021/백준/A+B-7/자바/for문 (0) | 2020.08.03 |
2742/백준/for문 /자바 (0) | 2020.08.01 |