#1 speeds에 맞게 progresses 진행시키기
progresses
배열에 원소가 남아 있는 한 while
문으로 반복시킨다.
speeds
와 progresses
배열의 같은 인덱스에 해당하는 짝을 묶어 더해준다.
- 진행도가 100 초과라면 더하지 않는다.
function solution(progresses, speeds) {
var answer = []
while(progresses.length > 0) {
for(let i = 0; i < speeds.length; i++) {
if(progresses[i] < 100) {
progresses[i] += speeds[i]
}
}
}
}
#2 첫 번째 작업이 100%가 된다면
- 배포 갯수 카운트를 위한 변수
var session = 0
을 정의
- 첫 번째 작업의 진도가 100%인 동안의 상황인
while(progresses[0] >= 100)
을 정의
while
문을 거칠 때마다 progresses
와 speeds
배열의 첫 번째 원소를 제거
while
문을 거칠 때마다 answer[session]
을 1로 초기화하거나 +1을 해준다.
while
문을 거치지 않을 경우에는 session
의 값을 answer.length
로 한다.
function solution(progresses, speeds) {
var answer = []
var session = 0
while(progresses.length > 0) {
for(let i = 0; i < speeds.length; i++) {
if(progresses[i] < 100) {
progresses[i] += speeds[i]
}
}
while(progresses[0] >= 100) {
progresses.shift()
speeds.shift()
answer[session] = answer[session] ? answer[session] + 1 : 1
}
session = answer.length
}
return answer
}