다희의 코딩 성장일기
[프로그래머스] level1. 폰켓몬 (자바 JAVA) 본문
[ 문제 ] [프로그래머스] level1. 폰켓몬 (자바 JAVA)
문제 링크 : https://programmers.co.kr/learn/courses/30/lessons/1845
# 접근 방법 및 풀이
- HashSet을 이용해서 풀었다. set은 중복을 처리하기 좋은 자료형이다. 종류가 같은 폰켓몬들의 종류만 뽑을 수가 있다.
- 1,1,2,3,4,4 가 들어있다면 set에는 1,2,3,4만 들어있을 것이다.
- 먼저, 최대로 뽑을 수 있는 폰켓몬 수는 N/2이다.
- nums 배열을 돌면서 중복을 처리해 폰켓몬의 종류들을 뽑아 set에 담는다.
- set의 size가 N/2보다 크거나 같으면 답은 N/2고, size가 작다면 size가 답이된다.
- 예를들어, 폰켓몬의 종류가 1,2,3,4,5,6,7,8개 있어도 뽑을 수 있는 최대 폰켓몬 갯수가 8/2 = 4이기 때문이다.
- 반대로, 폰켓몬의 종류가 1,2밖에 없는데 최대 4개 뽑을 수 있어도 종류가 두가지라 답은 2가 된다.
- 자세한건 코드참조
# 주의할 점
- 딱히없음
JAVA 코드
import java.util.*;
class Solution {
public int solution(int[] nums) {
int answer = nums.length / 2;
HashSet<Integer> set = new HashSet<Integer>();
for(int i = 0; i < nums.length; i++){
set.add(nums[i]);
}
answer = (set.size() >= answer)? answer : set.size();
return answer;
}
}
REVIEW
'Algorithm > 프로그래머스' 카테고리의 다른 글
[프로그래머스] level1. 약수의 개수와 덧셈 (자바 JAVA) (0) | 2021.08.23 |
---|---|
[프로그래머스] level1. 음양 더하기 (자바 JAVA) (0) | 2021.08.23 |
[프로그래머스] level1. 위클리 챌린지 2주차 (자바 JAVA) (0) | 2021.08.23 |
[프로그래머스] level1. 키패드 누르기 (자바 JAVA) (0) | 2021.08.23 |
[프로그래머스] level1. 위클리챌린지 4주차 (자바 JAVA) (0) | 2021.08.23 |
Comments