function solution(n, lost, reserve) {
let loststudentNumber = n - lost.length;
lost = lost
.sort((a, b) => a - b)
.filter((lostItem) => {
if (reserve.includes(lostItem)) {
loststudentNumber++;
reserve = reserve.filter((reserveItem) => lostItem !== reserveItem);
return null;
} else {
return lostItem;
}
});
if (loststudentNumber !== n) {
lost.map((lostNumber) => {
if (reserve.includes(lostNumber - 1)) {
reserve = reserve.filter((item) => item !== lostNumber - 1);
loststudentNumber++;
} else if (reserve.includes(lostNumber + 1)) {
reserve = reserve.filter((item) => item !== lostNumber + 1);
loststudentNumber++;
}
});
}
return loststudentNumber;
}
레벨 1맞니...은근히 고려할게 많은 문제였다. 테스트 케이스 13, 14에서 계속 통과가 안되서 알아보니, lost 배열을 정렬 시켜야했다.
'알고리즘 풀이' 카테고리의 다른 글
[프로그래머스]H-index(javascript) (0) | 2022.03.01 |
---|---|
[프로그래머스]가장 큰 수(javascript) (0) | 2022.02.28 |
[프로그래머스]K번째 수(javascript) (0) | 2022.02.28 |
[프로그래머스]타겟 넘버 (0) | 2021.08.08 |
[프로그래머스] 괄호 변환 (0) | 2021.08.08 |