문제 링크
https://www.acmicpc.net/problem/3052
나의 코드 (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 |
댓글