function solution(progresses, speeds) {
var answer = [];
let count = 1;
let days = progresses.map((ele, index) => Math.ceil((100 - ele) / speeds[index]))
let fixed = days[0]
while (days.length > 0) {
days.splice(0, 1)
if (fixed >= days[0]) {
count++
} else {
answer.push(count)
fixed = days[0]
count = 1
}
}
return answer;
}
while 조건문은 한 번 싸이클을 끝까지 돌고 조건을 체크한다. 배열의 길이가 0보다 클 때 반복해야하는 조건에서 맨 마지막에 배열을 삭제하는 메서드를 넣으면 한 사이클이 돌고, 배열의 마지막 앨리먼트가 삭제되고, 조건을 체크할 때 연산이 다 끝나지 않았음에도 이미 빈 배열이 되어버려 반복문이 끝나버릴 수가 있다. 따라서 배열을 삭제하는 메서드를 맨 처음에 넣어 빈 배열이 되어도 끝까지 연산되도록 코드를 작성하였다.
진짜 기초적인 건데 이 문제로 오늘 헛다리 짚어서 기록! 반성하자 ㅇ<-<