본문 바로가기
Programming/Javascript

프로그래머스 자전거 공장 문제 Javascript

by 개발자 염상진 2023. 4. 6.

 

프로그래머스 자전거 공장 문제 Algorithm

 

프로그래머스 자전거 공장 문제는 스택을 이용해서 풀어낼 수 있다. 기간별로 다른 누진세가 적용되기 때문에 최대한 저렴한 가격으로 자전거를 생산하기 위해서는 최대한 앞쪽에 물량을 몰아서 생산기간 동안 최대한 적은 숫자의 자전거를 매월 생산하도록 하는 것이 관건이다. 총 3단계로 나누어 알고리즘을 설계할 수 있다. 

1. 얼마까지 자전거를 생산해야 한다라는 개념을 향후 몇개월 동안 얼마만큼의 자전거를 생산해야 되는지 order 배열을 재배치한다.

2. 새롭게 정의된 주문서에서 월별 생산량을 비교해서 뒷쪽에 물량이 몰려있는 경우 앞으로 추가하면서 물량을 조절할 수 있다. 

3. 생산해야 하는 물량과 기간을 고려해서 최종 생산비를 뽑아낸다. 

 

프로그래머스 자전거 공장 문제 Javascript 풀이

 

function solution(cost, order){

  // Part 1
  order.sort();

  const _order = [order[0]]

  for(let i = 1; i<order.length; i++){
    const [m,n] = order[i]; // m : 시간 | n : 주문량
    const [prevM, prevN] = order[i-1];
    _order.push([m - prevM, n])

  }

  // part2
  const stack = [];
  for(let [m, n] of _order){
    while(stack.length > 0){
      const [_m, _n] = stack[stack.length - 1]
      if(_m / _n  < m / n){
        break;
      }
      stack.pop();
      m += _m; 
      n += _n;
    }
    stack.push([m,n]);
  }

  // Part 3
  let answer = 0;
  for(const [m, n] of stack){
    let pPrev = 0;
    for(const [time, price] of cost){
      if(m * time >= n){
        break;
      }
      answer += (n - m*time) * (price - pPrev);
      pPrev = price;
    }
  }
  return answer;
}

 

🚀️ 도움이 되셨다면 구독좋아요 부탁드립니다 👍️

 

 

Github CLI Install Ubuntu 22.04

1. 터미널 실행 아래 코드 입력. 터미널에 Github CLi install type -p curl >/dev/null || sudo apt install curl -y curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg | sudo dd of=/usr/share/keyrings/githubcli-archive-keyrin

about-tech.tistory.com

 

 

CI/CD #5 배포 구성하기 Github Actions EC2 Docker .env 생성하기 [추가자료]

이전글 CI/CD #1 배포 구성하기 Node.js 빌드 CI/CD #2 배포 구성하기 Dockerfile CI/CD #3 배포 구성하기 Github Actions CI/CD #4 배포 구성하기 AWS EC2 [최종] Github Actions 배포 Github Actions를 통해 CI/CD 파이프라인을

about-tech.tistory.com

 

 

 

댓글