[프로그래머스] 알고리즘 Kit - 기능개발

ss_kim·2024년 11월 12일

<코드>

function solution(progresses, speeds) {
    var answer = [];
    let count = 1;
    
    const days = progresses.map((item, i) => {
        if((100 - item) % speeds[i] !== 0) {
            return Math.floor((100 - item) / speeds[i]) + 1
        } else {
            return (100 - item) / speeds[i]
        }
        
    })
    
    days.forEach((item, i) => {
        if(item >= days[i + 1]) {
            days[i + 1] = days[i];
            count++;
        }
        
        if(item < days[i + 1] || i == days.length -1) {
            answer.push(count);
            count = 1;
        }
    })
    
    return answer;
}



<풀이>

  1. progresses를 순회하면서 진행률이 100%가 되기까지 남은 날짜를 계산한다.
  2. 남은 날짜를 순회하면서 앞에 있는 기능의 개발이 끝났는지 확인한다.
    i + 1의 날짜가 작다면 한 번에 배포할 수 있으므로 count를 올림
    i + 1의 날짜가 크다면 count를 반환하고 1로 초기화
profile
프론트엔드 개발자

0개의 댓글