반응형
https://programmers.co.kr/learn/courses/30/lessons/1845
import java.util.*;
//nums의 갯수의 절반 만큼 포켓몬을 가지고갈수 있다..
//포켓몬은 중복으로 가져갈수 없음..
//{1,2,3,4,5,6} 이라면 최대 3개의 포켓몬을 가지고갈수 있고, 총 다른 종류의 포켓몬 3개를 가지고갈수 잇다
//{1,1,1,2,2,2} 라면 최대 3개의 포켓몬을 가지고 갈 수 있지만, 다른 종류의 포켓몬을 가져가야하기에 2개밖에 못가져간다.
//중복 제거를 하는게 제일 좋지 않을까..? HashSet은 중복을 허용하지 않기때문에..HashSet에 넣는게 좋아보인다..?
class Solution {
public int solution(int[] nums) {
int answer = 0;
int getPoketmonMax = (nums.length)/2;
HashSet<Integer> PokectMon = new HashSet<>();
for(int i=0; i<nums.length; i++){
PokectMon.add(nums[i]);
}
//중복을 제거한 총 포켓몬의 수
int PoketMonKind = PokectMon.size();
//총 포켓몬의 수가 가지고갈수 있는 수 보다 작으면 총 포켓몬 수만큼밖에 못가져감...
if(PoketMonKind <= getPoketmonMax){
answer = PoketMonKind;
}
//총 포켓몬의 수가 가지고갈수 있는 수 보다 크면 가지고갈수 있는 만큼 다 가져가면 됨
else{
answer = getPoketmonMax;
}
return answer;
}
}
반응형
'코딩테스트 > 프로그래머스 1단계' 카테고리의 다른 글
프로그래머스 1단계 - 내적 (0) | 2021.04.27 |
---|---|
프로그래머스 1단계 - 예산 (0) | 2021.04.27 |
프로그래머스 1단계 - 문자열 내 마음대로 정렬하기 (0) | 2021.04.24 |
프로그래머스 1단계 - 완주하지 못한 선수 (0) | 2021.04.23 |
프로그래머스 1단계 - 2016년 (0) | 2021.04.22 |