프로그래머스 Level 1 - 체육복
📌 문제 설명
📌 생각한 풀이 방법
- 체육복을 잃어버린 학생 중 스스로 여분을 가져온 학생을 먼저 걸러냄
- 체육복을 잃어버린 학생에게 여분의 체육복을 빌려줌
- 체육복을 못빌린 학생이 나오면 들을수 있는 학생의 수를 감소시킴
📌 풀이
function solution(n, lost, reserve) {
lost.sort((a, b) => a - b);
reserve.sort((a, b) => a - b);
for (let i = 0; i < lost.length; i++) {
let current = lost[i];
if (reserve.includes(current)) {
for (let j = 0; j < reserve.length; j++) {
if (current === reserve[j]) {
lost[i] = -1;
reserve[j] = -1;
}
}
}
}
for (let i = 0; i < lost.length; i++) {
let current = lost[i];
if (current > 0) {
let borrow = false;
for (let j = 0; j < reserve.length; j++) {
if (current - 1 === reserve[j] || current + 1 === reserve[j]) {
borrow = true;
reserve[j] = -1;
break;
}
}
if (!borrow) n--;
}
}
return n;
}