gimmickbutreal

[백준/자바] 3052번 - Java 본문

Algorithm/Java

[백준/자바] 3052번 - Java

isshosng 2022. 2. 4. 18:14
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
// 두 자연수 A와 B가 있을 때, A%B는 A를 B로 나눈 나머지 이다. 예를 들어, 7, 14, 27, 38을 3으로 나눈 나머지는 1, 2, 0, 2이다. 
// 수 10개를 입력받은 뒤, 이를 42로 나눈 나머지를 구한다. 그 다음 서로 다른 값이 몇 개 있는지 출력하는 프로그램을 작성하시오. 
// 첫째 줄부터 열번째 줄 까지 숫자가 한 줄에 하나씩 주어진다. 이 숫자는 1,000보다 작거나 같고, 음이 아닌 정수이다.
// 첫째 줄에, 42로 나누었을 때, 서로 다른 나머지가 몇 개 있는지 출력한다.
import java.util.Scanner// Scanner 사용을 위해서 java.util.Scanner class를 import
import java.io.IOException; // 예외처리 class import
public class Main {
    public static void main(String[] args) throws IOException {
        // 반복문을 사용하여 42로 나눈 나머지 값 중에서 다른 값을 배열 변수에 넣기 위한 예외처리 
        
        Scanner sc = new Scanner(System.in); // Scanner class의 객체 생성
        // System in = 입력한 값을 바이트 단위로 읽음 
                
        int[] arr = new int[10]; // 입력값 배열 입력값은 10개임 
        int[] arr2 = new int[1000]; // 전체 배열
        int a = 42// 문제에서 요구한 조건
        int count = 0// 42로 나누었을 때, 서로 다른 나머지가 몇 개 있는지 알아보기 위한 값
    
        for (int i=0; i<10; i++) { // 10번 반복
            int n = sc.nextInt(); // int형 정수를 입력받는 method
            arr[i] = n % a; // 정수를 42로 나눈 값의 나머지 10개를 arr에 넣어줌 (배열의 길이=10)
        }
        
        for (int i=0; i<arr.length; i++) { // 배열의 길이를 알 수 있는 함수 arr.length = 10번 반복
            arr2[arr[i]]++// arr값을 arr2에 넣어주어 1씩 증가시킴 >> 값이 존재하면 1, 없으면 0 
        }
        
        for (int i = 0; i<arr2.length; i++) { // arr2 length = 10번 반복
            if (arr2[i]!=0) { // arr2의 배열의 길이가 0이 아니라면 (입력한 정수를 42로 나누었을 때, 나머지가 다른 값이 있다면)
                count++// 0부터 1씩 커지는 값 (나머지가 다른 값들의 수를 구함)
                // arr2 배열의 길이가 0이 아니라면, 해당 값에 해당하는 정수를 출력 
            }
        }
        
        System.out.println(count); // 임의의 1000 이하 양의 정수 10개를 42로 나눈 값 중에서 나머지가 다른 값 출력 
        sc.close(); // Scanner class 닫아주기 
        }
}
 
cs

tip) 

- Scanner를 이용한 코드는 길어지고 느려짐을 이번 문제를 통해 확실히 이해했다. 다른 방법을 찾아야 한다.

 

 

 

 

 

 

'Algorithm > Java' 카테고리의 다른 글

[백준/자바] 8958번 해설 - Java  (0) 2022.02.06
[백준/자바] 1546번 - java  (0) 2022.02.05
[백준/자바] 2577번 - Java  (0) 2022.02.03
[백준/자바] 2562번 - Java  (0) 2022.02.02
[백준/자바] 10818번 - Java  (0) 2022.02.01