알고리즘/프로그래머스(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());
    }
}