[프로그래머스/JavaScript]스택/큐--기능개발
7007 단어 JavaScript프로그래머스알고리즘JavaScript
#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
// progresses 배열에 원소가 남아있다면
while(progresses.length > 0) {
// speeds의 index에 맞춰 progresses에 더해준다.
for(let i = 0; i < speeds.length; i++) {
// 진도가 100 미만인 경우에만 더해준다.
if(progresses[i] < 100) {
progresses[i] += speeds[i]
}
}
// progresses의 첫 번째 원소가 100 이상일 경우
while(progresses[0] >= 100) {
// progresses와 speeds에 각각 첫 번째 원소를 제거하고
progresses.shift()
speeds.shift()
// answer[session]이 없다면 1로 초기화, 있다면 + 1
answer[session] = answer[session] ? answer[session] + 1 : 1
}
// 직전의 while문을 거치지 않았을 경우 session 값을 정의
session = answer.length
}
return answer
}
progresses
배열에 원소가 남아 있는 한 while
문으로 반복시킨다.speeds
와 progresses
배열의 같은 인덱스에 해당하는 짝을 묶어 더해준다.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
// progresses 배열에 원소가 남아있다면
while(progresses.length > 0) {
// speeds의 index에 맞춰 progresses에 더해준다.
for(let i = 0; i < speeds.length; i++) {
// 진도가 100 미만인 경우에만 더해준다.
if(progresses[i] < 100) {
progresses[i] += speeds[i]
}
}
// progresses의 첫 번째 원소가 100 이상일 경우
while(progresses[0] >= 100) {
// progresses와 speeds에 각각 첫 번째 원소를 제거하고
progresses.shift()
speeds.shift()
// answer[session]이 없다면 1로 초기화, 있다면 + 1
answer[session] = answer[session] ? answer[session] + 1 : 1
}
// 직전의 while문을 거치지 않았을 경우 session 값을 정의
session = answer.length
}
return answer
}
Author And Source
이 문제에 관하여([프로그래머스/JavaScript]스택/큐--기능개발), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@wkdgusrhkd/프로그래머스JavaScript스택큐-기능개발저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)