레벨 1
https://programmers.co.kr/learn/courses/30/lessons/1845
총 N 마리의 폰켓몬 중에서 N/2마리를 고르는 방법을 백트래킹으로 구현했고 문제를 풀었더니 테스트 7부터 시간초과가 났다.
레벨 1인데 너무 복잡하게 생각한 것 같아서 심플하게 다시 생각해봤다.
nums 배열을 set으로 바꿔 중복된 폰켓몬 종류를 제거했다.
set의 size가 N/2보다 크거나 같다면 N/2가 답 작다면 set의 size가 답으로 풀었다.
import java.util.HashSet;
import java.util.Set;
class Solution {
public int solution(int[] nums) {
Set<Integer> set = new HashSet<Integer>();
for (int i : nums) {
set.add(i);
}
if (set.size() >= nums.length / 2) {
return nums.length / 2;
} else {
return set.size();
}
}
}