yesolje
프로그래머스_고득점kit_그리디_체육복 본문
풀이
import java.util.HashSet;
class Solution {
public int solution(int n, int[] lost, int[] reserve) {
// 1. Set을 사용해 중복 제거
HashSet<Integer> lostSet = new HashSet<>();
HashSet<Integer> reserveSet = new HashSet<>();
for (int l : lost) {
lostSet.add(l);
}
for (int r : reserve) {
// 여벌이 있지만 도난당한 경우 먼저 처리
if (lostSet.contains(r)) {
lostSet.remove(r);
} else {
reserveSet.add(r);
}
}
// 2. 체육복 빌려주기
for (int r : reserveSet) {
if (lostSet.contains(r - 1)) { // 앞번호 학생에게 빌려주기
lostSet.remove(r - 1);
} else if (lostSet.contains(r + 1)) { // 뒷번호 학생에게 빌려주기
lostSet.remove(r + 1);
}
}
// 3. 최종적으로 체육복을 가진 학생 수 반환
return n - lostSet.size();
}
}
'코딩테스트' 카테고리의 다른 글
| 프로그래머스_고득점kit_우선탐색_게임 맵 최단거리 (1) | 2025.03.13 |
|---|---|
| 프로그래머스_고득점kit_우선탐색_타겟넘버 (0) | 2025.03.11 |
| 프로그래머스_고득점kit_완전탐색_모의고사 (0) | 2025.03.07 |
| 프로그래머스_고득점kit_완전탐색_최소직사각형 (0) | 2025.03.07 |
| 프로그래머스_고득점kit_정렬_K번째 수 (0) | 2025.03.06 |