1. 첫번째 코드
- map 함수를 이용하여 element를 리스트에서 바로 지울 때 해당 리스트에 바로 적용이 되어 element를 순차적으로 돌지 못하는 문제가 있었다. 그래서 copyLost 리스트를 따로 만듬.
let n = 5;
const lost = [1, 2, 3];
const reserve = [1, 2, 3];
function solution(n, lost, reserve) {
let answer = n - lost.length;
lost.sort();
reserve.sort();
// 여벌 체육복을 가져온 학생이 체육복을 도난 당했는지 확인
const copyLost = [];
lost.map((element, index) => {
if (reserve.includes(element)) {
reserve.splice(reserve.indexOf(element), 1);
answer += 1;
} else {
copyLost.push(element);
}
})
// 여벌 체육복을 가져온 학생이 체육복을 도난 당한 학생에게 체육복을 빌려 줄 수 있는지 확인
// lost -1 확인 => 있으면 reserve에서 지우고 answer +1
// lost +1 확인 => 있으면 reserve에서 지우고 answer +1
copyLost.map(element => {
if (reserve.includes(element-1)) {
reserve.splice(reserve.indexOf(element - 1), 1);
answer += 1;
} else if (reserve.includes(element+1)) {
reserve.splice(reserve.indexOf(element+1), 1);
answer += 1;
}
})
return answer;
}
console.log(solution(n, lost, reserve));
반응형
'자료구조&알고리즘 > 알고리즘-문제풀이' 카테고리의 다른 글
[프로그래머스-Level1] 제일 작은 수 제거하기 (0) | 2020.06.21 |
---|---|
[프로그래머스-Level1] 핸드폰 번호 가리기 (0) | 2020.06.21 |
[프로그래머스-Level1] 두 정수 사이의 합 (0) | 2020.06.20 |
[프로그래머스-Level1] 완주하지 못한 선수 (0) | 2020.06.20 |
[프로그래머스-Level1] 시저암호 (0) | 2020.06.19 |