Algorithm/programmers
programmers 폰켓몬
wow
2022. 3. 13. 21:04
https://programmers.co.kr/learn/courses/30/lessons/1845
코딩테스트 연습 - 폰켓몬
당신은 폰켓몬을 잡기 위한 오랜 여행 끝에, 홍 박사님의 연구실에 도착했습니다. 홍 박사님은 당신에게 자신의 연구실에 있는 총 N 마리의 폰켓몬 중에서 N/2마리를 가져가도 좋다고 했습니다.
programmers.co.kr
문제 분석
- HashSet을 사용하여 중복된 종류의 숫자를 제거하여 추가한다.
- 가장 많은 종류의 폰켓몬을 구하고, 종류의 최대값은 N/2이기때문에 정답(answer)이 N/2보다 큰 경우 정답을 N/2로 변경한다.
문제 풀이
1. HashSet에 중복을 제거한 배열 원소를 추가한다.
2. 최대 개수는 N/2를 넘을 수 없기때문에 넘는 경우 N/2로 정답을 변경한다.
3. 정답을 출력한다.
import java.util.*;
class Solution {
public int solution(int[] nums) {
int answer = 0;
Set<Integer> set = new HashSet<>();
for(int i=0;i<nums.length;i++){
set.add(nums[i]);
}
answer = set.size();
if(answer > nums.length/2){
answer = nums.length/2;
}
return answer;
}
}