포켓몬 (자바 비기너)
안녕하세요!
정말 오랜만에 포스팅하네요
오늘부터 코테 스터디를 시작해서 이에 대한 내용을 한 땀 한 땀 정리하려고 합니다.
일단 문제는 아래 링크를 통해 들어가셔서 확인해 주세요!
https://school.programmers.co.kr/learn/courses/30/lessons/1845?language=java
문제 요약 :
1) nums / 2한 길이를 넘으면 안 됨
2) nums/2한 길이와 동일한 수로 중복이 되면 안 됨
-> 음.. 이 부분이 좀 이해가 안 가요 솔직히,,
예로 {1,2,3,3)이 들어있으면 경우의 수가 1,2 / 1,3 / 2,3 이렇게 3번인데.. 중복을 안 한다는 가정하에..
그러나 저렇게 되면 nums/2한 값을 넘겨버리니 틀립니다.. 그래서 그냥 nums/2한 값을 넣어줬어요
그리고 hash.add해서 알아서 중복값을 삭제해줍니다.!
고려사항 : hash를 사용해야 함
답 :
import java.util.*;
class Solution {
public int solution(int [] nums) {
HashSet <Integer> hash = new HashSet <>();
int limit = nums.length / 2;
for(int i = 0; i < nums.length; i++){
hash.add(nums [i]);
}
return Math.min(hash.size(), limit);
}
}
min함수는 (1,2) : 1번 수와 2번 수 중, 작은 것을 return 하기 때문에 min함수에 다 넣어버렸습니다...