프로그래머스 - 기능개발

이서현·2021년 5월 6일
0

Algorithm

목록 보기
15/76

05.06에 푼 문제입니다🌷
기능개발
이 문제는 stack를 활용한 문제이다.
stack에서 이전 기능을 pop해서 날짜가
이전 날이 크면 이전 날의 배포 갯수(stack[][1])에 1을 더해준다.

function solution(progresses, speeds) {
    var answer = [];
    var stack=[]
    for (let i in progresses){
        var days=(100-progresses[i])
        if (days%speeds[i]===0) days=days/speeds[i]
        else days=Math.floor(days/speeds[i])+1
        
        if(stack.length===0) stack.push([days,1])
        else{
            var exday=stack.pop()
            if(exday[0]>=days){
                exday[1]++
                stack.push(exday)
            }
            else{
                stack.push(exday)
                stack.push([days,1])
            }
        }
    }
    
    for(let i in stack){
        answer.push(stack[i][1])
    }
    
    return answer;
}
profile
안녕하세요. 이서현입니다( ღ'ᴗ'ღ )

0개의 댓글