정리하고기록하자
백준 (JAVA) - 나머지 (3052) 본문
백준 - 알고리즘 1차원배열 나머지 (3052) 문제
문제 : 두 자연수 A와 B가 있을 때, A%B는 A를 B로 나눈 나머지 이다. 예를 들어, 7, 14, 27, 38을 3으로 나눈 나머지는 1, 2, 0, 2이다.
수 10개를 입력받은 뒤, 이를 42로 나눈 나머지를 구한다. 그 다음 서로 다른 값이 몇 개 있는지 출력하는 프로그램을 작성하시오.
입력 : 첫째 줄부터 열번째 줄 까지 숫자가 한 줄에 하나씩 주어진다. 이 숫자는 1,000보다 작거나 같고, 음이 아닌 정수이다.
출력 : 첫째 줄에, 42로 나누었을 때, 서로 다른 나머지가 몇 개 있는지 출력한다.
문제에서 수 10개를 입력 받은 뒤 라고 했으니
int형 배열을 선언 후 그 반복문을 선언한다
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int arr[] = new int[10];
for(int i = 0; i < arr.length; i ++) {
}
}
}
반복문을 선언 후 10 개를 입력 받으라고 했으니까
반복문 안에 sc.nextInt() 의 변수를 선언했다
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int arr[] = new int[10];
for(int i = 0; i < arr.length; i ++) {
int b =sc.nextInt();
}
}
}
---------------------------------------------------여기서 부터 구글링 ---------------------------------------
HashSet 사용
HashSet은 Set의 파생클래스로 Set은 기본적으로 집합으로 중복된 원소를 허용하지 않습니다.
HashSet은 순서 역시 고려가 되지 않습니다.
HashSet을 사용함으로써 42로 나눈 값을 Set에 담아준다.
Set<Integer> set = new HashSet<Integer>();
Set 을 선언해주고
그 안에 담아야 하기 때문에
반복문 안에서 42로 나눈 값을 add로 추가한다.
for(int i = 0; i < arr.length; i ++) {
int b =sc.nextInt();
set.add(b % 5);
}
추가 한뒤 마지막으로
System.out.println(set.size()); 추가 한다.
System.out.println(set.size());
import java.util.HashSet;
import java.util.Scanner;
import java.util.Set;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
int arr[] = new int[10];
Set<Integer> set = new HashSet<Integer>();
for(int i = 0; i < arr.length; i ++) {
int b =sc.nextInt();
set.add(b%42);
}
sc.close();
System.out.println(set.size());
}
}
이번에 HashSet에 대해서 공부하게 되었고 어떤 방식으로 사용하면 좋은지에 대해서 더 공부해야 겠다.
'백준 - 알고리즘' 카테고리의 다른 글
백준 (JAVA) - OX퀴즈 (8958) (0) | 2022.02.10 |
---|---|
백준 (JAVA) - 평균 (1546) (0) | 2022.02.10 |
백준 (JAVA) - 숫자의 개수 (2577) (0) | 2021.11.17 |
백준 (JAVA) - 최댓값 (2562) (2) | 2021.11.16 |
백준 (JAVA) - 최소,최대 (10818) (0) | 2021.11.15 |