[JavaScript][Programmers] 체육복
🔎 체육복
❓ 문제링크
https://programmers.co.kr/learn/courses/30/lessons/42862
📄 제출 코드
function solution(n, lost, reserve) {
let student = new Array(n).fill(1);
reserve.forEach(e => {
// console.log(e);
student[e - 1]++;
})
lost.forEach(e => {
student[e - 1]--;
})
// console.log(student)
student.forEach((s, idx) => {
if (s == 0 && student[idx - 1] == 2) {
student[idx] = 1;
student[idx - 1] = 1;
} else if (s == 0 && student[idx + 1] == 2) {
student[idx] = 1;
student[idx + 1] = 1;
}
});
var answer = 0;
student.forEach(e => {
if (e > 0) answer++;
})
return answer;
}
let n = 5;
let lost = [3];
let reserve = [1, 2, 3, 5];
console.log(solution(n, lost, reserve))
먼저 student라는 배열을 1로 다 채우고, reserve는 +1, lost는 -1을 한다.
그 후 student를 돌면서 0인 값(체육복이 없는 친구) 중에 앞의 번호가 2인 경우, 1로 변경.
0인 값(체육복이 없는 친구)중에 뒤의 번호가 2인 경우, 1로 변경.
모든 작업이 끝나고, student에 1이상인 값이 있으면 answer에 +1 하여 answer를 리턴.
처음에 e==1인 경우만 answer에 +1했었는데, 틀렸다고 나와서 다시생각해보니까 옷이 2벌이여도 참가는 가능하기 때문에 0보다 크면 다 더하는게 맞다.
Author And Source
이 문제에 관하여([JavaScript][Programmers] 체육복), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@cjh951114/JavaScriptProgrammers-체육복저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)