정리하고기록하자

백준 (JAVA) - 나머지 (3052) 본문

백준 - 알고리즘

백준 (JAVA) - 나머지 (3052)

정리하고기록하자 2021. 11. 22. 22:12
반응형

백준 - 알고리즘 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