목표

문제 요구사항

  1. 각 기능은 진도가 100%일때 서비스 배포됨.
  2. 각 기능 개발 속도가 다르며, 뒤에있는 기능은 먼저 배포 될수 없음
  3. 각 기능 배포시 몇 개의 기능이 배포되는지 반환

문제 풀이

배열을 이용한 풀이

  1. 데이터 추상화
    progresses,speeds 값이 다른 두개의 데이터로 내려온다. progresses 진행 정도, speeds는 진행 속도로, 진행 정도에 진행 속도를 하나씩 더해주면, 하나의 데이터로 작업할 수 있다.

     while(progresses.length  >  0){
         // 진행 정도 - speeds값만큼 더함. 
         progresses = progresses.map( (ele,idx) => { 
             return ele + speeds[idx];
         })
         console.log(progresses);
         // ...생략 ...
     } 
    
     => 실행 결과
      [ 94, 60, 60 ]
      [ 95, 90, 65 ]
      [ 96, 120, 70 ]
      [ 97, 150, 75 ]
      ... 생략 ...
    
  2. 문제 해결

    1. 진행 정도는 매일 speads값만큼 커진다.
    2. 최우선 진행 정도가 100보다 크면 값을 cnt을 증가, speads값과 progresses을 제거 한다.
    3. 2.번 작업을 다시한다. 값이 없다면 cnt 값을 넣고
    4. 1.번 으로 다시 돌아간다.
         while( progresses.length  >  0 ){
             if( progresses[0] >= 100 ){
                 progresses.shift();
                 speeds.shift();
                 ++cnt;
             }else {
                 break;
             }
         }
         if(cnt > 0)
             answer.push(cnt);
    

결론

다른 사람의 기가막힌 풀이..