https://school.programmers.co.kr/learn/courses/30/lessons/1845
문제 접근
문제를 읽으면서 뽑을 수 있는 갯수의 경우의 수를 다 찾고 그 중에서 뽑는 최대 종을 카운트하려했다.
그러나 뽑는 갯수가 늘어날수록 추가적인 변수나 반복문이 늘어나서 이 부분 해결하기가 쉽지 않더라
일단 종의 수만 세어보려고 Map을 만들고 힌트를 봤는데 종의 수와 뽑을 수 있는 수를 잘 생각해 보라더라
즉, 종의 수가 암만 많아도 뽑을 수 있는 수가 적으면 내가 가질 수 있는 최대 폰켓몬 종류는 뽑을 수 있는 수랑 같게 되고
내가 암만 많이 뽑을 수 있어도 종의 수가 더 적다면 내가 가질 수 있는 최대 폰켓몬 종류는 종의 수가 된다.
import java.util.*;
class Solution {
public int solution(int[] nums) {
Map<Integer, Integer> map = new HashMap<>();
for(int n : nums) map.put(n, n);
if(nums.length/2 < map.size()) return nums.length/2;
else if(nums.length/2 > map.size()) return map.size();
else return map.size();
}
}
다른 사람들은 같은 풀이 방식에 Set이나 List를 사용하였더라
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스 / 공원 산책 / JAVA] (0) | 2023.03.27 |
---|---|
[프로그래머스 / 덧칠하기 / JAVA] (0) | 2023.03.24 |
[프로그래머스 / 2016년 / JAVA] (0) | 2023.03.23 |
[프로그래머스 / 문자열 내 마음대로 정렬하기 / JAVA] (0) | 2023.03.22 |
[프로그래머스 / 소수 찾기 / JAVA] (0) | 2023.03.22 |
댓글