코딩공부/백준 (java)
[백준 3052] 나머지 (java)
CodingKwon
2021. 7. 5. 22:47
문제 링크
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의 나머지에 해당하는 배열의 인덱스를 찾아서 카운트를 올립니다.
마지막으로 배열을 돌면서 카운트가 된 수들을 다시 카운팅하여 출력하면 됩니다.