https://programmers.co.kr/learn/courses/30/lessons/42862
코딩테스트 연습 - 체육복
점심시간에 도둑이 들어, 일부 학생이 체육복을 도난당했습니다. 다행히 여벌 체육복이 있는 학생이 이들에게 체육복을 빌려주려 합니다. 학생들의 번호는 체격 순으로 매겨져 있어, 바로 앞번
programmers.co.kr
class Solution {
public int solution(int n, int[] lost, int[] reserve) {
int answer = 0;
// -1: 도난
// 0 : 도난 x, 여벌 x (도난당했는데 여벌 있는 경우 포함)
// 1 : 도난 x, 여벌 o
int all[] = new int[n];
// 도난당한 사람 체크
for (int i : lost) {
all[i - 1]--;
}
// 여벌 있는 사람 체크
for (int i : reserve) {
all[i - 1]++;
}
for (int i = 0; i < all.length; i++) {
if (all[i] < 0) { // 도난당했을 경우 옆에서 줄 수 있는지 확인
if ((i != 0) && all[i - 1] > 0) {
all[i]++;
all[i - 1]--;
} else if ((i + 1 != all.length) && all[i + 1] > 0) {
all[i]++;
all[i + 1]--;
}
}
}
for (int i : all) {
if (i >= 0) {
answer++;
}
}
return answer;
}
}
'programmers > Java' 카테고리의 다른 글
[programmers] 게임 맵 최단거리 / Java (0) | 2021.10.06 |
---|---|
[programmers] 키패드 누르기 / Java (0) | 2021.08.18 |