반응형
문제분석: 문제만 잘 이해하면 쉬운문제다.
요점은, 우리는 N마리의 포켓몬중 N/2마리를 뽑고싶은데, 뽑아도 최대한 많이, 중복없이 뽑고싶어한다.
그래서 중복없이 최대한 몇마리를 뽑을수 있느냐를 묻는 문제다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
import java.util.*;
class Solution {
public int solution(int[] nums) {
int answer = 0;
int max_choice =nums.length/2;
Set<Integer> set =new HashSet<>();
for(int data:nums){
set.add(data);
}
if(set.size()>=max_choice){
answer=max_choice;
}
else{
answer=set.size();
}
return answer;
}
}
|
cs |
문제풀이:
우리가 뽑을수있는 기회는 max_choice로 N/2다.
그리고 중복이 들어오면 알아서 제거해주는 HashSet을 사용했다.
만약에 중복을 제거한 Set의 크기가 max_choice보다 크면 우리는 max_choice만큼 최대로 뽑을수있다.
반대로, max_choice가 Set 크기보다 크면, 우리는 set.size() 만큼 최대로 뽑을수있다.
반응형
'알고리즘 > 프로그래머스 Level1' 카테고리의 다른 글
[프로그래머스,Java] Level1 : 위클리 챌린지 1주차 (0) | 2021.08.06 |
---|---|
[프로그래머스,Java] Level1 : 완주하지 못한 선수 (0) | 2021.08.04 |
[프로그래머스,Java] Level1 신규 아이디 추천 (0) | 2021.08.03 |
[프로그래머스,Java] Level1 : 모의고사 (0) | 2021.08.03 |
[프로그래머스,Java] Level1 : 로또의 최고 순위와 최저 순 (0) | 2021.07.30 |