Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 | 31 |
Tags
- 추억점수
- 프로그래머스
- 대충 만든 자판
- springboot
- 자바
- 용돈관리
- jvm
- IoC container
- 병합정렬
- call by value
- docker
- 백준
- Di
- java
- Baekjoon
- 헤이로라
- 수들의 합
- vue3
- 스웨거
- 6236
- Spring
- 2178
- getOrDefault
- swagger3
- 크레인인형뽑기게임
- Spring Security
- springdoc
- vue-cli
- 2751
- 1032
Archives
- Today
- Total
개발쿠키
[프로그래머스]포켓몬(java) 본문
https://school.programmers.co.kr/learn/courses/30/lessons/1845
문제를 요약하자면 N 마리의 포켓몬 중 N/2 마리만 가져갈 수 있다.
이때 가져갈 수 있는 포켓몬의 종류가 가장 많은 값 즉 종류가 가장 많은 케이스일 경우의 포켓몬 종류의 개수를 출력하면 된다.
public int solution(int[] nums) {
HashSet<Integer> hs = new HashSet<>();
for (int n : nums) {
hs.add(n);
}
return hs.size() > nums.length / 2 ? nums.length / 2 : hs.size();
}
코드는 생각보다 간결하다. 물론 더 간결하게도 가능한걸로 알고 있다.
아래는 HashSet의 중복을 허용하지 않는 특징을 이용해서 포켓몬의 종류를 담는 코드이다.
HashSet<Integer> hs = new HashSet<>();
for (int n : nums) {
hs.add(n);
}
포켓몬은 N/2 마리만 데려갈 수 있기때문에 포켓몬의 종류가 데려갈 수 있는 포켓몬보다 크다면 결국 N/2의 값이 종류가 가장 많은 경우의 값이 된다. 반대라면 hs의 총 사이즈가 포켓몬을 데려갈 때 종류가 가장 많은 값이 된다.
return hs.size() > nums.length / 2 ? nums.length / 2 : hs.size();
'개발 > baekjoon&programmers' 카테고리의 다른 글
[프로그래머스]크레인 인형뽑기 게임(java) (0) | 2023.06.29 |
---|---|
[백준]괄호(java) (0) | 2023.06.29 |
[프로그래머스]추억 점수(java) (0) | 2023.06.28 |
[프로그래머스]의상(java) (0) | 2023.06.28 |
[백준]1032번(java) (0) | 2023.06.27 |