1. 문제
두 자연수 A와 B가 있을 때, A%B는 A를 B로 나눈 나머지 이다. 예를 들어, 7, 14, 27, 38을 3으로 나눈 나머지는 1, 2, 0, 2이다.
수 10개를 입력받은 뒤, 이를 42로 나눈 나머지를 구한다. 그 다음 서로 다른 값이 몇 개 있는지 출력하는 프로그램을 작성하시오.
2. 코드
import java.util.Scanner;
import java.util.HashSet;
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
HashSet<Integer> hs = new HashSet<Integer>();
for(int i=0;i<10;i++){
int numA=sc.nextInt();
hs.add(numA%42);
}
System.out.println(hs.size());
sc.close();
}
}
3. 풀이
HashSet이용하기 - 서로 다른 나머지의 개수를 세는 것 이므로 HashSet을 이용하면 중복된 값은 제외된 상태로 저장됨
※ HashSet
- 자바 Collection 중 Set의 파생클래스
- 중복원소를 허용하지 않음
- 순서 개념이 없음 (정렬을 하고 싶으면 리스트로 변환해야함)
4. 링크
'Computer Science > 자료구조와 알고리즘' 카테고리의 다른 글
[JAVA] 백준 8958번 :OX퀴즈 (0) | 2021.01.17 |
---|---|
[JAVA] 백준 1546번 : 평균 (0) | 2020.09.18 |
[JAVA] 백준 2577번 : 숫자의 개수 (0) | 2020.08.10 |
[JAVA] 백준 2562번 : 최댓값 (0) | 2020.08.05 |
[JAVA] 10818번 : 최소, 최대 (0) | 2020.07.30 |