Algorithm/백준알고리즘

[백준알고리즘] 1차원 배열 4단계 -3052번 나머지(JAVA)

개발자하소서 2022. 6. 23. 12:12
728x90
반응형
SMALL

📌문제

두 자연수 A와 B가 있을 때, A%B는 A를 B로 나눈 나머지 이다. 예를 들어, 7, 14, 27, 38을 3으로 나눈 나머지는 1, 2, 0, 2이다. 

수 10개를 입력받은 뒤, 이를 42로 나눈 나머지를 구한다. 그 다음 서로 다른 값이 몇 개 있는지 출력하는 프로그램을 작성하시오.

 

 📌입력

첫째 줄부터 열번째 줄 까지 숫자가 한 줄에 하나씩 주어진다. 이 숫자는 1,000보다 작거나 같고, 음이 아닌 정수이다.

 
 

📌출력

첫째 줄에, 42로 나누었을 때, 서로 다른 나머지가 몇 개 있는지 출력한다.

  

📌코드

import java.util.*;
public class Main{
    public static void main(String[] args){
        
        Scanner sc = new Scanner(System.in);
        // 숫자를 입력받아야 하기에 
        // Scanner 클래스를 선언 
        int[] arr= new int[10];
        // 10개의 수를 입력받을 것이기 때문에 
        // 10개의 배열을 선언 
        
        int count = 0; 
        // 서로 다른 나머지 수 구할 변수 
        
        for(int i=0; i<10; i++){
            arr[i] = sc.nextInt() % 42;
            //10개의 수를 입력받고 42로 나눈 나머지 값을
            // arr[]배열에 넣는다.
        }
        
        for(int i =0; i<10; i++){
            int cnt = 0 ;// 나머지 값이 동일할경우 누적 값 변수 
            for(int j=i+1; j<10; j++){
                if(arr[i] == arr[j] ){
                    // 만약에 42로 나눈 나머지 값이 동일하다면
                    // 즉, arr[0] == arr[1]이라면 
                    cnt++; 
                    //동일한 값을 누적해줄 값을 더해준다.
                }
            }
                
                if(cnt ==0){
                    // 만약 동일한 나머지 값이 없다면 
                    count++; 
                    // 서로 다른 나머지 갯수를 더해준다 
                }
                
            } 
        System.out.println(count);
            // 서로 다른 나머지 갯수를 출력한다.
        } 
        //메인 메소드 종료 
    }
    // 클래스 종료
728x90
반응형
LIST