본문 바로가기
백준 문제 풀이/1차원 배열

(#3052 Java) 나머지

by _비니_ 2023. 8. 9.
문제

 

 

문제 이해

 

입력 받은 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