문제 출처
연구소에 있는 전체 폰켓몬 N마리 중 1/2을 데려갈 수 있다. 데려갈 수 있는 최대한의 종류를 선택할 것이기 때문에 가장 많이 가져갈 수 있는 폰켓몬 종류이 개수를 구하여라.
Todo: 가장 많이 가져갈 수 있는 폰켓몬 종류 번호의 개수 구하기
1. 연구소에 있는 전체 폰켓몬 중 1/2을 데려갈 것임
2. 최대한 모두 다른 종류의 폰켓몬 선택할 것임
문제에 제시되어있는 조건 및 제한사항은 따로 코드로 입력하지 않아도 된다.
import java.util.HashSet;
class Solution {
public int solution(int[] nums) {
int limit = nums.length/2;
HashSet <Integer> set = new HashSet<>();
for (int ponketmon : nums) {
set.add(ponketmon);
}
return Math.min(limit, set.size());
}
}
(1) 변수 limit -> 선택할 수 있는 폰켓몬 수 = N/2
(2) 정수형 HashSet set -> 중복된 종류의 폰켓몬을 방지하기 위한 자료구조
(3) forEach로 nums 배열의 각 원소를 ponketmon 으로 가져와서 set 에 추가
(4) limit 와 set 의 크기 중 작은 값을 반환 -> 중복이 제거된 폰켓몬 종류의 개수와 최대로 반환할 수 있는 개수 중 작은 값을 반환