[Programmers]-폰켓몬

문제

문제

숫자라는 종류 폰켓몬이 있다. 총 폰켓몬 수의 절반을 가져간다. 최대로 가져갈 수 있는 폰켓몬 종류 수를 반환하면 된다.

코드

import java.util.*;
class Solution {
    public int solution(int[] nums) {
        int answer = 0;
        int get = nums.length/2;
        Set<Integer> set = new HashSet<Integer>();
        
        for(int i=0;i<nums.length;i++){
            set.add(nums[i]);
        }

        return set.size() > get ? get : set.size();
    }
}

코드 설명

get은 가져갈수있는 폰켓몬 수이다. 해쉬셋을 이용해 저장순서는 보장되지 않지만 중복저장을 피할 수 있다. 배열값들을 해쉬셋에 저장하면 종류가 다른 폰켓몬 수를 알수있다. 해쉬셋의 크기와 get을 비교하여 작은 쪽을 반환하면된다.

요약

  • set으로 문제풀기