반응형
3052번
문제
두 자연수 A와 B가 있을 때, A%B는 A를 B로 나눈 나머지 이다. 예를 들어, 7, 14, 27, 38을 3으로 나눈 나머지는 1, 2, 0, 2이다.
수 10개를 입력받은 뒤, 이를 42로 나눈 나머지를 구한다. 그 다음 서로 다른 값이 몇 개 있는지 출력하는 프로그램을 작성하시오.
입력
첫째 줄부터 열번째 줄 까지 숫자가 한 줄에 하나씩 주어진다. 이 숫자는 1,000보다 작거나 같고, 음이 아닌 정수이다.
출력
첫째 줄에, 42로 나누었을 때, 서로 다른 나머지가 몇 개 있는지 출력한다.
여기서 고민했던 부분은 42로 나눈 나머지 값들을 배열에다가 저장했는데
그 각각의 값들이 중복되는 지 아닌지 어떻게 확인하느냐였다.
일일이 비교하면 겹치는 숫자가 많을 때 어떻게 계산이 되는 지 떠오르지가 않아서
42로 나누는 거니 배열이 42개면 된다, 0부터 41까지! / 근데 답에는 43을 적어놨었다ㅋㅋ 계산 오류
어쨌든 그렇게 해서 0, 1, 2, 3.. 과 같은 값이 나올 테고
나머지가 41이면 41번째 자리에 +1이 될 것이고
나머지가 0이 아닌 값들의 갯수를 더하면 끝!
내 제출
import java.util.*;
public class Main{
public static void main(String args[]){
Scanner scn = new Scanner(System.in);
int[] arr = new int[10];
int[] remain = new int[10];
int[] fourtyThree = new int[41];
int no = 0;
for(int i = 0; i < arr.length; i++){
arr[i] = scn.nextInt();
remain[i] = arr[i]%42;
fourtyThree[arr[i]%42]++;
}
for(int i=0; i< fourtyThree.length; i++) {
if(fourtyThree[i] != 0) {
no++;
}
}
System.out.println(no);
}
}
반응형
'코딩테스트 문제 > 백준-자바' 카테고리의 다른 글
[백준] A+B - 3 (0) | 2021.05.27 |
---|---|
[백준] 평균 (0) | 2021.05.24 |
[백준] 숫자의 개수 (0) | 2021.05.24 |
[백준] 최댓값 (0) | 2021.05.23 |
[백준] 최소, 최대 (0) | 2021.05.23 |