중복 확인 (정렬 사용)

문제

나의풀이

import java.util.*;
class Main {
	public String solution(int n,int[] arr) {
		String answer = "U";
		HashMap<Integer, Integer> map = new HashMap<>();
		for(int x : arr) {
			if(map.containsKey(x)) {
				return "D";
			}
			else map.put(x, map.getOrDefault(map.get(x), 0)+1);
		}
		return answer;
	}

		    
	public static void main(String[] args) {
		Main T = new Main();
		Scanner kb = new Scanner(System.in);
		int n = kb.nextInt();
		int[] arr = new int[n];
		for(int i=0; i<n; i++) arr[i] = kb.nextInt();
		System.out.println(T.solution(n, arr));
	}
	
}

++ 정렬 사용

import java.util.*;
class Main {
	public String solution(int n,int[] arr) {
		String answer = "U";
		Arrays.sort(arr);
		for(int i=0; i<n-1;i++) {
			if(arr[i]==arr[i-1]) return "D";
		}
		return answer;
	}

		    
	public static void main(String[] args) {
		Main T = new Main();
		Scanner kb = new Scanner(System.in);
		int n = kb.nextInt();
		int[] arr = new int[n];
		for(int i=0; i<n; i++) arr[i] = kb.nextInt();
		System.out.println(T.solution(n, arr));
	}
	
}

풀이방법

1번 풀이:
해쉬에 x값을 하나씩 추가해서 만약 이미 존재하는 key라면 "D"를 return 해줬다.

2번 풀이:
배열을 sort시켜 인접한 값중 같은값이 존재하면 "D"를 return 해줬다.

핵심키워드

중복을 확인할때, Hashmap을 활용하는 방법을 기억!!

좋은 웹페이지 즐겨찾기