[문제] 해시 포켓몬 문제
문제 설명
홍 박사님은 당신에게 자신의 연구실에 있는 총 N마리 포켓몬 중에서 N/2마리를 가져가도 좋다고 했다. 홍박사님은 연구실의 포켓몬 종류에 따라 번호를 붙였다. 같은 종류의 포켓몬은 같은 번호를 가지고 있다.
당신은 최대한 다양한 종류의 포켓몬을 가지길 원하기 때문에 최대한 많은 포켓몬을 포함해서 N/2마리를 선택하려고 한다. N마리 포켓몬의 종류 번호가 담긴 배열 nums가 매개변수로 주어질 때, N/2마리의 포켓몬을 선택하는 방법 중 가장 많은 종류의 포켓몬을 선택하는 방법을 찾아 종류 번호의 개수를 return하도록 solution 함수를 완성하라.
코드
import java.util.*;
class Solution {
public int solution(int[] nums) {
int answer = 0;
HashMap<Integer, Integer> n = new HashMap<>();
for(Integer num : nums ){
n.put(num, n.getOrDefault(num,0)+1);
}
answer = Math.min(n.size(), nums.length / 2);
return answer;
}
}
hashmap을 이용하여 nums 배열을 순회하며 포켓몬의 종류 번호별 개수를 센다. 만약 포켓몬 종류 번호의 개수가 가져갈 수 있는 포켓몬 종류의 최대 개수보다 크다면, 최대개수를 반환한다.
'Java > 공부' 카테고리의 다른 글
Servlet과 JSP(Java Server Pages) (0) | 2023.08.08 |
---|---|
[Hashmap] .getOrDefault(key, defaultValue) (0) | 2023.07.25 |
배열의 선언과 초기화 예제에 적용해보기 (0) | 2023.07.21 |
예제로 arrayList 공부하기 (0) | 2023.07.19 |
trim() split("\\s") split("\\s+") (0) | 2023.07.18 |