본문 바로가기

프로그래머스/스택, 큐

[큐] 프로그래머스 '기능개발' - js

반응형

1. 문제

https://school.programmers.co.kr/learn/courses/30/lessons/42586

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

2. 코드

스택, 큐 문제더라도 스택/큐를 직접 구현해야하는 건 아니다. 스택/큐의 개념을 이용하여 로직을 짤 수도 있다는 것 기억하기! 큐 문제라고 큐 만들기에 목 매달지말기!

function solution(progresses, speeds) {
    // 큐 이용하는 문제. 선입선출
    let answer = [];
    // 각 작업 별 소요되는 작업기간 구하기
    let days = [];
    for(let i=0;i<progresses.length;i++){
        days.push(Math.ceil((100-progresses[i])/speeds[i]));
    }
    console.log(days)
    // 각 배포마다 몇 개의 기능이 배포되는지 확인
    // 뒤에 있는 기능이 완료됐더도 앞에 있는 기능이 배포될 때까지 기다렸다가 함께 배포되어야 함
    let max = days[0];
    let count = 1;
    for(let i=1;i<days.length;i++){
      if(max < days[i]){
        answer.push(count);
        max = days[i];
        count = 1;
      }else count++;
    }
    // 마지막 배포날짜의 배포되는 기능 수까지 push 해주기
    answer.push(count);
    
    return answer;
}

 

복기

4/14
반응형