3052번: 나머지
각 수를 42로 나눈 나머지는 39, 40, 41, 0, 1, 2, 40, 41, 0, 1이다. 서로 다른 값은 6개가 있다.
www.acmicpc.net
문제
두 자연수 A와 B가 있을 때, A%B는 A를 B로 나눈 나머지 이다. 예를 들어, 7, 14, 27, 38을 3으로 나눈 나머지는 1, 2, 0, 2이다.
수 10개를 입력받은 뒤, 이를 42로 나눈 나머지를 구한다. 그 다음 서로 다른 값이 몇 개 있는지 출력하는 프로그램을 작성하시오.
입력
첫째 줄부터 열번째 줄 까지 숫자가 한 줄에 하나씩 주어진다. 이 숫자는 1,000보다 작거나 같고, 음이 아닌 정수이다.
출력
첫째 줄에, 42로 나누었을 때, 서로 다른 나머지가 몇 개 있는지 출력한다.
import java.util.Scanner;
import java.util.HashSet;
public class Main{
public static void main(String[] args){
Scanner in = new Scanner(System.in);
HashSet<Integer>h = new HashSet<Integer>();
for(int i=0;i<10;i++){
h.add(in.nextInt()%42);
}
in.close();
System.out.print(h.size());
}
}
HashSet은 Set의 파생클래스이다.
특징- 중복된 원소를 허용하지 않는다.
- 순서를 고려하지 않는다.
HashSet에 값을 추가하려면 add(value)메소드를 이용해야한다.
입력한 값이 HashSet 내부에 존재하지 않으며 그값을 HashSet에 추가하고
true를 반환한다. 내부에 값이 존재하며 false를 반환한다.
size는 HashSet에 저장된 원소의 개수를 말한다. hashset은 중복원소를 허용하지 않기 때문에
서로다른 나머지를 구할 수 있다.
'백준 알고리즘 > JAVA' 카테고리의 다른 글
백준/8958/OX퀴즈/JAVA (0) | 2021.09.06 |
---|---|
백준/1546/평균/JAVA (0) | 2021.09.04 |
백준/2577/숫자의 개수/JAVA (0) | 2021.09.02 |
백준/2562번/최댓값/JAVA (0) | 2021.09.01 |
백준/10818번/최소,최대/JAVA (0) | 2021.08.31 |
댓글