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. 링크
3052번: 나머지
39, 40, 41, 42, 43, 44, 82, 83, 84, 85를 42로 나눈 나머지는 39, 40, 41, 0, 1, 2, 40, 41, 0, 1이다. 서로 다른 값은 모두 6개가 있다.
www.acmicpc.net
'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 |