블로그

[프로그래머스, 자바스크립트] 알고리즘-45 기능개발 본문

알고리즘

[프로그래머스, 자바스크립트] 알고리즘-45 기능개발

wooluck 2020. 1. 7. 20:11

출처 : 프로그래머스 알고리즘 코딩테스트 Level.2

https://programmers.co.kr/learn/courses/30/lessons/42586?language=javascript

 

풀이 과정

progresses 배열의 가장 앞 요소의 값이 100이 될 때 까지 speeds 만큼 배열의 요소를 증가시킨다.

만약 조건을 충족할 경우 이후 값들에 대해서도 연속적인 검사를 진행한다.

이후 조건이 연속된 만큼 progresses의 요소를 내보낸 뒤 결과 값에 내보낸 숫자를 저장한다.

progresses 의 길이가 0이 될 때 까지 반복.

 

답안

function solution(progresses, speeds) {
  let result = [];
  while (progresses.length > 0) {
    progresses = progresses.map((v, i) => v + speeds[i]);
    let cnt = 0;
    for (let i = 0; i < progresses.length; i += 1) {
      if (progresses[i] < 100) {
        break;
      } else {
        cnt += 1;
      }
    }
    if (cnt) {
      result.push(cnt);
      for (let i = 0; i < cnt; i += 1, progresses.shift(), speeds.shift()) {}
    }
  }
  return result;
}

 

Comments