학습/프로그래머스

[프로그래머스] 폰켓몬(java)

태기 2023. 2. 9. 16:23

문제

https://school.programmers.co.kr/learn/courses/30/lessons/1845?language=java 

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr


나의 풀이

import java.util.HashSet;
import java.util.Set;

class Solution {
    public int solution(int[] nums) {
        int answer = 0;
        Set set = new HashSet<Integer>();
        for (int num : nums) {
            set.add(num);
        }
        answer = set.size() > nums.length / 2 ? nums.length / 2 : set.size();
        return answer;
    }
}

해시 알고리즘이다. HashSet을 활용해서 중복을 지워주고 N/2까지 가져갈 수 있으므로 종류가 N/2보다 많으면 N/2만큼이 최대로 가져갈 수 있고, 그보다 적으면 종류수만큼 가져갈 수 있다.