폰켓몬

김나영·2023년 6월 20일
0

프로그래머스

목록 보기
28/39

문제 : 폰켓몬

풀이

int pick = nums.length / 2;
  • 총 N마리의 포켓몬 중에서 N/2만큼 선택한다고 했으므로 int 타입의 변수 pick을 생성
HashSet<Integer> set = new HashSet<>();
  • 가장 많은 종류의 폰켓몬을 선택하는 방법을 찾는 것이므로 중복을 제외하기 위해 HashSet 사용

  • HashSet : 중복 저장 불가능

for (int i : nums) {
    set.add(i);
}
  • 몇 종류의 포켓몬이 있는지 구하기 위해 set 배열에 추가
if(pick >= set.size()) answer = set.size();
else answer = pick;        
  • N/2마리보다 중복을 제외한 폰켓몬의 수가 적다면 중복을 제외한 폰켓몬 수만큼 선택

  • N/2마리보다 중복을 제외한 폰켓몬의 수가 크다면 N/2만큼 선택

전체 코드

import java.util.HashSet;
class Solution {
    public int solution(int[] nums) {
        int answer = 0;
        int pick = nums.length / 2; // 총 N마리의 포켓몬 중에서 N/2만큼 가져감
        HashSet<Integer> set = new HashSet<>(); // 중복 제거
        for (int i : nums) {
            set.add(i);
        }
        if(pick >= set.size()) answer = set.size();
        else answer = pick;        
        return answer;
    }
}

0개의 댓글