반응형
문제 해결
1. 체육복을 잃어버린 학생이 여벌을 가지고 있는 경우를 제외 한다.
2. 체육복을 잃어버린 학생으로 for 문을 돌리며
(1) 학생보다 이전 번호의 학생이 여벌을 가지고 있다면 그냥 빌린다.
(2) 학생보다 이전 번호의 학생이 여벌을 가지고 있지 않고, 다음 사람이 가지고 있다면 빌리고, 여벌을 가지고 있는 학생을 지운다.
(3) 양쪽 모두 없으면 넘어간다.
(4) 체육복을 빌릴 때마다 카운트를 센다.
☔ 깜빡하고 블로그를 쓰지 못했다... 늦게라도 쓴다 ㅠ
오늘은 filter를 알아보자.
🚐 filter
이 메소드는 배열에서 특정 조건을 만족하는 값(들)을 모아 다시 배열로 만드는 작업이다.
var arr = [1,2,3,4,5,6,7,8,9]
var newArr = arr.filter( number => number > 5 )
console.log(newArr) // [ 6, 7, 8, 9 ]
소스 코드
function solution(n, lost, reserve) {
const noDupleLost = lost.filter( (s) => (reserve.indexOf(s) === -1))
const noDupleReserve = reserve.filter( (s) => (lost.indexOf(s) === -1))
noDupleLost.sort()
var answer = n-noDupleLost.length
noDupleLost.forEach(lostStudent => {
if (noDupleReserve.indexOf(lostStudent-1) >= 0) {
answer ++
} else if (noDupleReserve.indexOf(lostStudent+1) >= 0) {
answer ++
var reserveStudent = noDupleReserve.indexOf(lostStudent+1)
noDupleReserve.splice(reserveStudent, 1)
}
})
return answer;
}
console.log(solution(5, [2,5], [1,3,5]));
console.log(solution(5, [2,4], [3]));
console.log(solution(3, [3], [1]));
console.log(solution(5, [2,3], [3,4])) // 4
출처: 프로그래머스
문제: https://programmers.co.kr/learn/courses/30/lessons/42862?language=javascript
반응형
'Algorithm Problem > JavaScript' 카테고리의 다른 글
[JavaScript] 프로그래머스 - 영어 끝말잇기(Summer/Winter Coding(~2018)) (0) | 2020.07.26 |
---|---|
[JavaScript] 프로그래머스 - 기능개발 (0) | 2020.07.25 |
[JavaScript] 프로그래머스 - 문자열을 정수로 바꾸기/ 서울에서 김서방찾기/ 같은 숫자는 싫어/ 문자열 내 p와 y의 개수 (0) | 2020.07.23 |
[JavaScript] 프로그래머스 - K번째수 (0) | 2020.07.22 |
[JavaScript] 프로그래머스 - 가운데 글자 가져오기 (0) | 2020.07.21 |