728x90
문제
N마리 폰켓몬의 종류 번호가 담긴 배열 nums가 매개변수로 주어질 때, N/2마리의 폰켓몬을 선택하는 방법 중, 가장 많은 종류의 폰켓몬을 선택하는 방법을 찾아, 그때의 폰켓몬 종류 번호의 개수를 return 하도록 solution 함수를 완성해주세요.
제한사항
- nums는 폰켓몬의 종류 번호가 담긴 1차원 배열입니다.
- nums의 길이(N)는 1 이상 10,000 이하의 자연수이며, 항상 짝수로 주어집니다.
- 폰켓몬의 종류 번호는 1 이상 200,000 이하의 자연수로 나타냅니다.
- 가장 많은 종류의 폰켓몬을 선택하는 방법이 여러 가지인 경우에도, 선택할 수 있는 폰켓몬 종류 개수의 최댓값 하나만 return 하면 됩니다.
import java.util.Set;
import java.util.HashSet;
class Solution {
public int solution(int[] nums) {
int answer = 0;
Set<Integer> set = new HashSet<>();
for (int num : nums) {
set.add(num);
}
if (set.size() <= nums.length/2)
answer = set.size();
else
answer = nums.length/2;
return answer;
}
}
노트
- 중복 제거를 위해 HashSet 사용
- Arrays 클래스를 활용해 배열을 바로 HashSet으로 변환하는게 더 좋았을 듯 함
// 배열 -> Set
Set<Integer> set = new HashSet<Integer>(Arrays.asList(arr));
- 지문을 집중해서 읽자...
728x90
'○ 기술면접 > 알고리즘' 카테고리의 다른 글
연산: 문자열 곱하기 (1) | 2023.06.09 |
---|---|
연산: 문자 리스트를 문자열로 변환하기 (0) | 2023.06.09 |
배열: n번째 원소까지 (0) | 2023.06.09 |
해시: 완주하지 못한 선수 (0) | 2023.06.08 |
프로그래머스: 짝수는 싫어요 (0) | 2023.06.07 |
구현: 팰린드롬수 (백준 1259) (0) | 2023.03.27 |
이진탐색: Hunt The Rabbit (백준 13777) (0) | 2023.03.24 |
이진탐색: 숫자 카드 (백준 10815) (0) | 2023.03.24 |