본문 바로가기
Study/Java문제

백준 3052번

by 로롤로롱 2023. 6. 17.

1. 배열에 담은 후 앞에 저장된 값들과 비교해서 중복이면 -1 입력하는 방법으로 품

	public static void main(String[] args) {
		Scanner s = new Scanner(System.in);
 
		int[] nArr = new int[10];
		
		for(int i=0; i<10; i++) {
			nArr[i]=s.nextInt()%42; // 값을 넣고
            
			for(int j=0; j<i; j++) {
				if(nArr[i]==nArr[j]) {
					nArr[i]=-1; // 중복이면 -1 입력
					break;
				}
			}
		}
		int count=0;
		for(int a : nArr) {
			if(a!=-1) {
				count+=1;
			}
		}
		System.out.println(count);
	}

2. HashSet

public static void main(String[] args) {
		Scanner s = new Scanner(System.in);
		
		/*
		 * HashSet
		 * - 중복되는 원소를 넣을 경우 하나만 저장함(중복X)
		 * - 순서 개념이 없다 정렬을 하고싶다면 list로 변환 후 정렬
		 * */
		HashSet<Integer> h = new HashSet<>();
		
		for(int i=0; i<10; i++) {
			h.add(s.nextInt()%42);
		}
		
		System.out.println(h.size());
	}

 

3. boolean 배열

	public static void main(String[] args) {
		Scanner s = new Scanner(System.in);
		/*
		 * 나머지가 나올 수 있는 수 0~41까지 42개이므로 길이가 42인 boolean 배열
		 * 입력받은 나머지값의 index를 true로 바꾼 후 true값인 배열의 원소 개수를 셈
		 * */
		boolean[] b = new boolean[42];
		
		for(int i=0; i<10; i++) {
			int n = s.nextInt()%42;
			b[n]=true;
		}
		
		int count=0;
		for(int i=0; i<b.length; i++) {
			if(b[i]) count++;
		}
		
		System.out.println(count);
	}

'Study > Java문제' 카테고리의 다른 글

문자열 합기치  (0) 2023.05.15
문자열 교체  (0) 2023.05.14

댓글