핑구

[백준/JAVA] 3052번 : 나머지 본문

CS/알고리즘

[백준/JAVA] 3052번 : 나머지

코딩 펭귄 2021. 8. 28. 21:53

https://www.acmicpc.net/problem/3052

 

3052번: 나머지

각 수를 42로 나눈 나머지는 39, 40, 41, 0, 1, 2, 40, 41, 0, 1이다. 서로 다른 값은 6개가 있다.

www.acmicpc.net

 

 

최대한 배열만으로 해결하기 위하여 노력했습니다.

만약 나머지가 다른 경우 배열을 복사한 후 길이를 1 늘려 마지막 부분에 해당 나머지 값을 저장하였습니다.

마지막에는 복사한 배열의 길이를 출력하여 서로 다른 나머지의 개수를 알 수 있게 하였습니다.

주의할 점은 flag의 초기화를 첫 번째 for문 안에 넣어 사용한 후 다시 초기화를 진행하는 것입니다.

 

import java.util.Arrays;
import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
				Scanner sc = new Scanner(System.in);
		int[] result = new int[10];
		for(int i = 0; i < 10; i++) {
			result[i] = sc.nextInt() % 42;
		}
		
		int[] copyArr = {result[0]};
		
		for(int i = 1; i < result.length; i++) {
			boolean flag = false;
			for(int j = 0; j < copyArr.length; j++) {
				if(result[i] == copyArr[j]) {
					flag = true;
					break;
				}
			}
			if(!flag) {
				copyArr = Arrays.copyOf(copyArr, copyArr.length + 1);
				copyArr[copyArr.length - 1] = result[i];
			}
		}
		
		System.out.println(copyArr.length);
	}
}

'CS > 알고리즘' 카테고리의 다른 글

[백준/JAVA] 8958번 : OX 퀴즈  (0) 2021.09.07
[백준/JAVA] 1546번 : 평균  (0) 2021.09.07
[백준/JAVA] 2577번 : 숫자의 개수  (0) 2021.08.22
[백준/JAVA] 2562번 : 최댓값  (0) 2021.08.22
[백준/JAVA] 10818번 : 최소, 최대  (0) 2021.08.22