[프로그래머스] 폰켓몬 (Lv.1, Java)

양현승·2023년 8월 29일

알고리즘

목록 보기
1/9

💡 문제

문제설명

🤔 고민사항

  • 어떤 자료형을 사용해야 할지부터 고민했다.
    Key - Value 페어가 굳이 필요하지 않았고, 중복을 제거하는 속성을 이용하기 위해 HashSet을 사용했다.
  • 입력받는 폰켓몬의 종류(int로 표현되었다)를 HashSet에 삽입하면 중복되는 종류가 제거된다.
  • HashSet의 크기는 즉, 중복이 제거되어 가질 수 있는 가장 많은 종류의 폰켓몬 숫자이다.
    문제에서 N/2마리까지 가져가도 좋다고 했으니, HashSet의 크기가 N/2보다 크면 N/2만큼, 그렇지 않으면 HashSet의 크기만큼이 정답이 된다.

🧑‍💻 Code

import java.util.*;

class Solution {
    public int solution(int[] nums) {
        int answer = 0;
        int thres = nums.length / 2;
        Set<Integer> hashset = new HashSet<Integer>();
        
        for(int i=0; i<nums.length; i++)
            hashset.add(nums[i]);
        
        if(hashset.size() > thres)
            answer = thres;
        else
            answer = hashset.size();
        
        return answer;
    }
}
profile
기록의 필요성을 느끼고 시작한 곳입니다. 혼잣말 하는것 같아 재밌네요!

0개의 댓글