(문제)
![[백준] 문제번호 1](https://blog.kakaocdn.net/dn/bNnV4R/btr0KHM3W8d/m4ZhrRKLIWnKlGK7soCEYK/img.png)
→ 작업 내용을 보면 “얼마나 많은 값이 있는지 보여줘”라고 되어 있습니다.
그 다음에, HashSet은 중복을 허용하지 않습니다.쉽게 해결되지 않을까요?
HashSet 선언(카운트를 구하는 것이므로 데이터 타입은 Integer) → for 문을 실행하면서 각 행을 읽어온 후,
들어오는 숫자를 42로 나눈 나머지가 해시 세트에 추가(저장)됩니다.
그 후 HashSet의 크기를 계산할 때 결과적으로 중복되지 않는(고유한) 나머지의 개수를 확인한다.
(나머지 값이 같으면 전혀 저장되지 않는다.)
(답변)
import java.io.*;
import java.util.HashSet;
public class Main {
public static void main(String args())throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
HashSet<Integer> set = new HashSet<>(); //HashSet + 데이터타입 Integer
for (int i = 0; i < 10; i++) { // 10개의 수가 주어진다
set.add(Integer.parseInt(br.readLine()) % 42); // 이를 42로 나눈 나머지를 set(Hashset)에 저장한다.
}
br.close();
System.out.println(set.size()); // set의 사이즈를 출력한다.
}
}
원천
https://www.acmicpc.net/problem/3052
3052호:나머지
각 숫자를 42로 나눈 나머지는 39, 40, 41, 0, 1, 2, 40, 41, 0, 1입니다. 6가지 값이 있습니다.
www.acmicpc.net