Development Logs/Algorithms
[JAVA] 프로그래머스 : 폰켓몬 (찾아라 프로그래밍 마에스터)
유뱅유뱅뱅
2020. 9. 4. 10:44
반응형
programmers.co.kr/learn/courses/30/lessons/1845?language=java
코딩테스트 연습 - 폰켓몬
당신은 폰켓몬을 잡기 위한 오랜 여행 끝에, 홍 박사님의 연구실에 도착했습니다. 홍 박사님은 당신에게 자신의 연구실에 있는 총 N 마리의 폰켓몬 중에서 N/2마리를 가져가도 좋다고 했습니다. �
programmers.co.kr
해결 방안
고를 수 있는 폰켓몬 중 종류의 최댓값을 구하는 문제이다.
따라서 HashMap에 key값을 종류, value 값을 종류의 갯수로 넣고
pick해야하는 갯수보다 map size가 크면 종류의 갯수가 더 많은 것이므로 전체 다 다른 종류를 고를 수 있게 되서 answer = pick이 된다.
pick해야하는 갯수보다 map size가 작으면 종류의 갯수가 더 작으므로 map size 만큼 종류를 고르는게 최댓값이므로 answer = map size가 된다.
코드
import java.util.*;
// 폰켓몬
class Solution {
public int solution(int[] nums) {
int answer = 0;
int pick = nums.length/2;
Map<Integer, Integer> map = new HashMap<>();
for(int i=0; i<nums.length; i++){
if(map.containsKey(nums[i])){
map.put(nums[i], map.get(nums[i])+1);
}
else{
map.put(nums[i], 1);
}
}
if(pick <= map.size()){
answer = pick;
}
else{
answer = map.size();
}
return answer;
}
}
반응형