코딩 테스트

(Java) 프로그래머스 폰켓몬

로승리 2021. 11. 24. 05:45

문제를 보고 생각을 많이 했다.

계속 읽다 보니 중복을 제거하고 두 값 중 최솟값을 리턴하면 된다는 걸 깨닫고 쉽게 풀렸다.

문제가 어렵다기 보단 풀이 아이디어를 떠올리는 것이 어려웠다.


최종 코드

import java.util.HashSet;
class Solution {
    public int solution(int[] nums) {
        int answer = 0;
        int max = nums.length / 2;
        
        // 중복을 제거하기 위해 해시셋에 넣기
        HashSet set = new HashSet();

        for(int i : nums) {
            set.add(i);
        }

        // 두 값중 최소값을 리턴
        if(set.size() > max) {
            answer = max;
        }
        else {
            answer = set.size();
        }
        return answer;
    }
}