문제 링크: https://programmers.co.kr/learn/courses/30/lessons/42862
function solution(n, lost, reverse) {
let answer = 0;
let data = [];
for (let i = 0; i < n; i++) {
data[i] = 1; // 모두가 체육복 한개씩 가지고 있도록 설정
}
for (let i = 0; i < lost.length; i++) {
data[lost[i] - 1] = 0; // 체육복 도난당한 학생 0
}
for (let i = 0; i < reverse.length; i++) {
data[reverse[i] - 1] += 1; // 여분 체육복 가져온 학생 +1
}
for (let i = 0; i < n; i++) {
if (data[i - 1] == 2 && data[i] == 0) { // 앞번호 학생한테 빌릴수 있는 경우
data[i - 1] = 1;
data[i] = 1;
} else if (data[i + 1] == 2 && data[i] == 0) { // 뒷번호 학생한테 빌릴수 있는 경우
data[i + 1] = 1;
data[i] = 1;
}
}
for (let i = 0; i < n; i++) { // 체육복 가지고 있으면 answer+1;
if (data[i] > 0) {
answer++;
}
}
return answer;
}
더 간단한 풀이가 있을거 같다...!!