BOJ

[백준 3052번/JAVA] 나머지 | 배열

syj0522 2024. 3. 4. 20:08

문제

풀이

  1. 길이가 42인 배열을 선언, 모두 -1로 초기화
  2. 42로 나눈 나머지가 0이면 인덱스 0에, 나머지가 1이면 인덱스 1에.. 저장
  3. 값이 -1이 아닌 요소의 갯수를 찾아 count를 증가시킴
  4. count값 출력

코드

import java.util.*;

public class Main {
    public static void main(String[] args){
        //10개의 정수 입력받기 (0<=N<=1,000)
        //길이가 42인 배열 선언
        //42로 나눈 나머지를 구해서 해당하는 인덱스에 저장
        //배열에 저장된 값의 갯수 구하기
        Scanner sc = new Scanner(System.in);

        int N = 10;
        int M = 42;
        int count = 0;
        int[] arr = new int[M];

        for(int i=0; i<M; i++) {
            arr[i] = -1;
        }

        for(int i=0; i<N; i++) {
            int num = sc.nextInt();
            for(int j=0; j<M; j++) {
                int remain = num%42;
                arr[remain] = remain;
            }
        }
        for(int i=0; i<M; i++) {
            if(arr[i]!=-1)
                count++;
        }
        System.out.print(count);
    }
}

Note

  • 나머지를 저장할 배열의 초기값을 0으로 지정했음 >> '나머지가 0인 경우'를 놓치고 count를 세어 틀림