문제
https://programmers.co.kr/learn/courses/30/lessons/42862?language=javascript
코드
function solution(n, lost, reserve) {
//잃어버렸지만 여분있는 학생 : buthave
let buthave = lost.filter(x => reserve.includes(x))
lost = lost.filter(x => buthave.includes(x) == false)
reserve = reserve.filter(x => buthave.includes(x) == false)
for (let i=0; i<lost.length; i++) {
//잃어버리고 여분도 없어서 빌려야 하는 학생
if (reserve.includes(lost[i]-1)) {
reserve.splice(reserve.indexOf(lost[i]-1), 1);
lost.splice(i,1);
i -= 1
} else if (reserve.includes(lost[i]+1)) {
reserve.splice(reserve.indexOf(lost[i]+1), 1);
lost.splice(i,1);
i -= 1
}
}
return n - lost.length
}
[배운 점]
- 자바스크립트 filter함수
arr.filter(callback(element[, index[, array]])[, thisArg])
EX) 다음 예는 값이 10 이하인 모든 요소가 제거된 걸러진 배열을 만들기 위해 filter()를 사용한다.
function isBigEnough(value) {
return value >= 10;
}
var filtered = [12, 5, 8, 130, 44].filter(isBigEnough);
// filtered 는 [12, 130, 44]
'⏳ 알고리즘 > JavaScript 알고리즘' 카테고리의 다른 글
프로그래머스 - LV1. 신규 아이디 추천(카카오 2021 블라인드 채용) (0) | 2021.06.21 |
---|---|
프로그래머스 - LV1. 모의고사 (0) | 2021.06.20 |
프로그래머스 - LV1. 완주하지 못한 선수 (0) | 2021.06.19 |
프로그래머스 - LV1. 두 개 뽑아서 더하기 (0) | 2021.06.19 |
프로그래머스 - LV1. 자릿수 더하기 (0) | 2021.06.19 |