Coding Test/프로그래머스
[프로그래머스 자바 JAVA] 폰켓몬 (level 1)
똧이
2022. 3. 18. 18:15
반응형
https://programmers.co.kr/learn/courses/30/lessons/1845
코딩테스트 연습 - 폰켓몬
당신은 폰켓몬을 잡기 위한 오랜 여행 끝에, 홍 박사님의 연구실에 도착했습니다. 홍 박사님은 당신에게 자신의 연구실에 있는 총 N 마리의 폰켓몬 중에서 N/2마리를 가져가도 좋다고 했습니다.
programmers.co.kr
import java.util.HashSet;
import java.util.Set;
class Solution {
public int solution(int[] nums) {
int answer = 0;
int count = nums.length / 2; // 1. 총 N 마리의 폰켓몬 중에서 N/2마리를 가져가는 것이므로 N.length / 2를 해준다.
Set<Integer> set = new HashSet<>(); // 2. 가장 많은 종류의 폰켓몬을 선택하는 방법을 찾는 것이므로 중복을 제외하고 몇 종류의 폰켓몬이 있는지 구하기 위해 씀.
// HashSet: 중복 저장 불가능
for(int num : nums){
set.add(num);
}
// 3. 몇 종류의 폰켓몬이 있는지 구하기 위해 set에 배열을 넣는다.
if(set.size() >= count){ // N/2마리보다 중복을 제외한 폰켓몬의 수가 많다면
answer = count; // N/2 만큼 선택할 수 있고
} else { // 그렇지 않다면 = N/2마리보다 중복을 제외한 폰켓몬의 수가 적다면
answer = set.size(); // 중복을 제외한 폰켓몬 수만큼 선택할 수 있다.
}
return answer;
}
}
728x90