반응형
문제 설명
당신은 폰켓몬을 잡기 위한 오랜 여행 끝에, 홍 박사님의 연구실에 도착했습니다. 홍 박사님은 당신에게 자신의 연구실에 있는 총 N 마리의 폰켓몬 중에서 N/2마리를 가져가도 좋다고 했습니다.
홍 박사님 연구실의 폰켓몬은 종류에 따라 번호를 붙여 구분합니다. 따라서 같은 종류의 폰켓몬은 같은 번호를 가지고 있습니다. 예를 들어 연구실에 총 4마리의 폰켓몬이 있고, 각 폰켓몬의 종류 번호가 [3번, 1번, 2번, 3번]이라면 이는 3번 폰켓몬 두 마리, 1번 폰켓몬 한 마리, 2번 폰켓몬 한 마리가 있음을 나타냅니다. 이때, 4마리의 폰켓몬 중 2마리를 고르는 방법은 다음과 같이 6가지가 있습니다.
나의 풀이 (java)
import java.util.HashSet;
class Solution {
public int solution(int[] nums) {
HashSet<Integer> tempSet = new HashSet<>();
for(int i =0; i<nums.length;i++) {
tempSet.add(nums[i]);
}
// map 크기 중 arr/2 크기 만큼 해서 최댓값 구하기
int kindCount = tempSet.size();
int selectCount = nums.length/2;
return Math.min(kindCount, selectCount);
}
}
풀이 방법 = 다른사람의 풀이 (java)
Godd Idea :
- HashSet 를 사용한 중복 제거 (HashSet = Array List와 비슷하지만 중복 제외,성능도 더 좋음)
느낀점
HashMap만 썼는데,
이런 경우에는 굳이 Map이 아닌 Set으로 처리 가능하다는 것과 쓰는 법을 배웠다
반응형
'개발 > 코딩 테스트' 카테고리의 다른 글
[알고리즘] 프로그래머스 > 스택/큐 > 프린터 (0) | 2022.08.06 |
---|---|
[알고리즘] 프로그래머스 > 스택/큐 > 올바른 괄호 (0) | 2022.08.06 |
[알고리즘] 프로그래머스 > 해시 > 위장 (0) | 2022.08.05 |
[알고리즘] 프로그래머스 > 해시 > 전화번호 목록 (0) | 2022.08.04 |
[알고리즘] 프로그래머스 > 스택/큐 > 주식 가격 (0) | 2022.08.03 |