[JS] 기능개발

yoon·2022년 11월 18일

코딩테스트

목록 보기
7/8
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보다 클 때 반복해야하는 조건에서 맨 마지막에 배열을 삭제하는 메서드를 넣으면 한 사이클이 돌고, 배열의 마지막 앨리먼트가 삭제되고, 조건을 체크할 때 연산이 다 끝나지 않았음에도 이미 빈 배열이 되어버려 반복문이 끝나버릴 수가 있다. 따라서 배열을 삭제하는 메서드를 맨 처음에 넣어 빈 배열이 되어도 끝까지 연산되도록 코드를 작성하였다.
진짜 기초적인 건데 이 문제로 오늘 헛다리 짚어서 기록! 반성하자 ㅇ<-<

profile
얼레벌레 개발자

0개의 댓글