Q. 폰켓몬
A1.
import java.util.HashSet;
class Solution {
public int solution(int[] nums) {
// 연구실에 있는 전체 폰켓몬의 수
int n = nums.length;
// HashSet을 사용해 서로 다른 폰켓몬 종류 저장
HashSet<Integer> mon = new HashSet<>();
// nums에 있는 폰켓몬 번호 중에 겹치지 않는게 mon에 저장됨
for (int num : nums) {
mon.add(num);
}
// 가져갈 수 있는 폰켓몬 수
int count = n / 2;
// 가져갈 수 있는 최대 종류의 수는 폰켓몬 종류의 개수 또는 가져갈 수 있는 폰켓몬 수 중 작은값
return Math.min(mon.size(), count);
}
}
A2.
class Solution {
public int solution(int[] nums) {
// count = 가져갈 수 있는 폰켓몬 수
int count = nums.length / 2;
// 1부터 200,000까지 폰켓몬 종류를 체크하기 위한 boolean 배열 생성
// 폰켓몬 종류 번호는 1번부터 200,000까지니까 인덱스 1에 1번 폰켓몬 저장하려면 배열 크기는 200001이 되야함
boolean[] exist = new boolean[200001];
// 가지고 있는 폰켓몬 종류의 수
int mon = 0;
// nums 배열의 각 폰켓몬 종류 번호를 확인한 후
// 만약 해당 번호가 처음 등장했으면 true로 해당 번호 표시하고, 종류 수 증가
for (int num : nums) {
if (!exist[num]){
exist[num] = true;
mon++;
}
}
return Math.min(mon, count);
}
}
'알고리즘, 코딩테스트 > 알고리즘 풀이' 카테고리의 다른 글
[프로그래머스/ 2022 KAKAO TECH INTERNSHIP] 성격 유형 검사하기 (0) | 2025.03.10 |
---|---|
[프로그래머스/ 코딩테스트 입문] 배열 뒤집기 (0) | 2025.03.06 |
[프로그래머스/ 코딩테스트 입문] 양꼬치 (0) | 2025.03.06 |
[프로그래머스/ 코딩테스트 연습문제] 햄버거 만들기 (0) | 2025.03.05 |
[프로그래머스/ 코딩테스트 연습문제] 옹알이 (2) (0) | 2025.03.03 |