programmers.co.kr/learn/courses/30/lessons/1845?language=java
해결 방안
고를 수 있는 폰켓몬 중 종류의 최댓값을 구하는 문제이다.
따라서 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;
}
}
'Old > Algorithms' 카테고리의 다른 글
[JAVA] 백준 17614번 : 369(한국정보올림피아드/KOI 2019 2차대회/초등부) (0) | 2020.09.17 |
---|---|
[JAVA] 프로그래머스 : 키패드 누르기 (2020 카카오 인턴십) (0) | 2020.09.07 |
[JAVA] 프로그래머스 : 숫자 게임 (Summer/Winter Coding(~2018)) (0) | 2020.09.02 |
[JAVA] 프로그래머스 : 점프와 순간 이동 (Summer/Winter Coding(~2018)) (0) | 2020.09.02 |
[JAVA] 프로그래머스 : 방문 길이 (Summer/Winter Coding(~2018)) (0) | 2020.09.01 |