ALGORITHM/PROGRAMMERS

[프로그래머스] 폰켓몬 (찾아라 프로그래밍 마에스터)

0298 2021. 7. 15. 20:25

https://programmers.co.kr/learn/courses/30/lessons/1845

 

코딩테스트 연습 - 폰켓몬

당신은 폰켓몬을 잡기 위한 오랜 여행 끝에, 홍 박사님의 연구실에 도착했습니다. 홍 박사님은 당신에게 자신의 연구실에 있는 총 N 마리의 폰켓몬 중에서 N/2마리를 가져가도 좋다고 했습니다.

programmers.co.kr

2021-07-15


1
2
3
4
5
6
7
8
9
10
11
12
13
import java.util.HashSet;
 
class Solution {
    public int solution(int[] nums) {
        int answer = 0;
        HashSet<Integer> set = new HashSet<>();
        
        for (int num : nums) set.add(num);
        answer = Math.min(set.size(), nums.length / 2);
        
        return answer;
    }
}
cs

 

#문제풀이

1. 중복제거를 한다. (HashSet)

 

2. 1) 중복제거 후 중복이 제거 된 포켓몬의 수 <= N/2 인 경우, 답은 중복이 제거 된 포켓몬의 수

   2) 중복제거 후 중복이 제거 된 포켓몬의 수 > N/2 인 경우, 답은 N/2

즉, 둘(중복이 제거 된 포켓몬의 수와 N/2) 중 최소 값 리턴 하면 된다.