문제
문제 이해
입력 받은 10개의 정수를 42로 나눈 나머지를 구한 후
그 나머지들을 비교해 서로 다른 값이 몇 개 인지 출력하는 문제이다.
문제 해결
음.. 우선 크기 10의 배열을 만든다.
Scanner in = new Scanner(System.in);
int[] array = new int[10];
배열의 크기만큼 반복해 수 입력 받고, 42로 나눈 나머지를 배열에 저장해준다.
for (int i = 0; i < array.length; i++) {
array[i] = in.nextInt() % 42;
}
★중복 값을 제거하려면 ? => Arrays.sort( ) 사용해 정렬★
Arrays.sort( ) : 오른차순 정렬 & 중복 제거
Arrays.sort(array);
★나머지가 -1일 수는 없으니 num 변수에 -1을 저장해둔 후,
42로 나눈 나머지를 저장해둔 array와 가지 않으면 그 수를 num에 넣어준 후 출력할 값(cnt)를 하나 증가시킨다.★
int num = -1;
int cnt = 0;
for(int i = 0; i < array.length; i++) {
if (num != array[i]) {
num = array[i];
cnt++;
}
}
System.out.println(cnt);
최종 코드
import java.util.*;
public class Main{
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int[] array = new int[10];
int num = -1;
int cnt = 0;
for(int i = 0; i < array.length; i++) {
array[i] = in.nextInt()%42;
}
Arrays.sort(array);
for(int i = 0; i < array.length; i++) {
if(num != array[i]) {
num = array[i];
cnt++;
}
}
System.out.println(cnt);
}
}
아래 HashSet도 다루기.
반응형
'백준 문제 풀이 > 1차원 배열' 카테고리의 다른 글
(#1546 Java) 평균 (0) | 2023.08.12 |
---|---|
(#10811 Java) 바구니 뒤집기 (0) | 2023.08.11 |
(#5597 Java) 과제 안 내신 분..? (0) | 2023.08.09 |
(#10813 Java) 공 바꾸기 (0) | 2023.08.08 |
(#10810 Java) 공 넣기 (0) | 2023.08.04 |