https://school.programmers.co.kr/learn/courses/30/lessons/42862?language=javascript#
풀이
function solution(n, lost, reserve) {
var answer = 0;
for (let i = 1; i <= n; i++) {
// 웃을 lost하지 않았다면
if (!lost.includes(i)) {
answer++;
} else {
// 자기자신이 여분있음
if (reserve.includes(i)) {
answer++;
reserve = reserve.filter(r => r !== i);
}
// 왼쪽 사람이 여분있음
else if (reserve.includes(i-1)) {
// 여분있는사람이 도난당함
if (lost.includes(i-1)) {
continue;
} else {
answer++;
reserve = reserve.filter((r) => r !== (i-1))
}
}
// 오른쪽 사람이 여분있음
else if (reserve.includes(i+1)) {
if (lost.includes(i+1)) {
continue;
} else {
answer++;
reserve = reserve.filter((r) => r !== (i+1))
}
}
}
}
return answer;
}
'알고리즘' 카테고리의 다른 글
[dfs, union find] 네트워크 (0) | 2023.09.25 |
---|---|
색종이 만들기 (dfs) (0) | 2023.09.23 |
[DP] N으로 표현 (0) | 2023.09.03 |
[DP] 등굣길 (0) | 2023.09.01 |
[DP] 스티커 모으기(2), 도둑질 (0) | 2023.09.01 |