알고리즘/프로그래머스(JAVA)
[프로그래머스/알고리즘] 폰켓몬
chaibin
2019. 5. 28. 21:44
풀이 방법
내용을 읽어보면 결국 가장 많이 가져가는 경우는 N/2이고
가장 적게 가져가는 경우는 내가 폰켓몬을 총 잡은 수(중복 제외)이다.
중복을 제외하고 폰켓몬의 종류를 알아내기 위해서 HashSet를 이용했다.
HashSet은 결국 집합이니까 중복된걸 알아서 제거하고
size()메소드를 통해서 알아낼 수 있다. 종류가 N/2보다 많아도 가장 많이 가져가는건 N/2이기 때문에
Math.min함수를 이용한다.
소스 코드(Java)
import java.util.HashSet;
class Solution {
public int solution(int[] nums) {
HashSet<Integer> hash=new HashSet<>();
for(int num:nums)
hash.add(num);
return Math.min(nums.length/2, hash.size());
}
}