Problem_Solving

백준(BOJ) 3052 : 나머지 (자바, JAVA)

CONCAT 2023. 12. 24. 16:19
728x90
 

3052번: 나머지

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

www.acmicpc.net

설계

  • 입력받은 수를 42로 나눈 나머지 중 고유값의 개수를 구한다.
  • 자연수로 된 특정 범위의 고유값을 구할 경우 중복 여부를 배열을 통해서 기록할 수 있다.

구현

코드

// package boj3052;

import java.util.Scanner;
//import java.util.Arrays;

public class Main {

	public static void main(String[] args) {
		// 각 나머지 값의 중복 여부를 저장하는 배열
		boolean remain[] = new boolean[42];
		Scanner scanner = new Scanner(System.in);
		int cnt = 0;
		for (int i = 0; i < 10; i++) {
			// System.out.println(scanner.nextInt());
			// 10개의 숫자를 입력받아서 각 숫자를 42로 나눈 나머지를 계산하고 중복되지 않는 경우를 카운트합니다.
			int mod = scanner.nextInt() % 42;
			// System.out.println(mod);
            // 만약 나머지 값이 이미 체크되었다면 다음 반복으로 넘어갑니다.
			if (remain[mod]) {
				continue;
			}
            // 나머지 값이 중복되지 않으면 카운트를 증가시키고, 해당 나머지를 중복되었다고 표시합니다.
			cnt++;
			// 중복되지 않는 나머지를 true로 표시하여 중복 여부를 체크합니다.
			remain[mod] = true;
		}
		// System.out.println(Arrays.toString(remain));
        // 중복되지 않는 나머지의 개수를 출력합니다.
		System.out.println(cnt);
		scanner.close();
	}

}