본문 바로가기
코딩공부/백준 (java)

[백준 3052] 나머지 (java)

by CodingKwon 2021. 7. 5.

문제 링크

https://www.acmicpc.net/problem/3052

 

3052번: 나머지

각 수를 42로 나눈 나머지는 39, 40, 41, 0, 1, 2, 40, 41, 0, 1이다. 서로 다른 값은 6개가 있다.

www.acmicpc.net

 

나의 코드 (java)

import java.util.Scanner;

public class Main {
    public static void main (String[] args) {
        Scanner sc = new Scanner(System.in);

        // 나눌 수
        int n = 42;
        // 배열 생성
        int arr[] = new int[10];

        for (int i=0; i<10; i++){
            arr[i] = sc.nextInt();
        }

        // 숫자의 쓰임을 확인할 배열
        int arr2[] = new int[42];
        
        // 42로 나눴을 때 나머지를 배열 2에 카운팅시킴
        for (int i=0; i<10; i++){
            arr2[arr[i] % 42]++;
        }
        
        // arr2에 나머지 개수를 카운팅할 변수
        int cnt = 0;
        
        // arr2를 순차적으로 돌아 나머지가 있으면 카운트 +1
        for (int i=0; i<42; i++){
            if (arr2[i] > 0){
                cnt++;
            }
        }

        // 결과
        System.out.println(cnt);
    }
}

 

이 문제는 42를 나눴을 때 서로 다른 나머지의 개수를 찾습니다.

따라서, 0~41을 카운팅 할 배열을 만들고 42의 나머지에 해당하는 배열의 인덱스를 찾아서 카운트를 올립니다.

마지막으로 배열을 돌면서 카운트가 된 수들을 다시 카운팅하여 출력하면 됩니다.

 

'코딩공부 > 백준 (java)' 카테고리의 다른 글

[백준 8958] OX퀴즈 (java)  (0) 2021.07.05
[백준 1546] 평균 (java)  (0) 2021.07.05
[백준 2577] 숫자의 개수 (java)  (0) 2021.07.05
[백준 2562] 최댓값 (java)  (0) 2021.07.05
[백준 10818] 최소, 최대 (java)  (0) 2021.07.05

댓글