https://programmers.co.kr/learn/courses/30/parts/12081
function solution(progresses, speeds) {
var answer = [];
while (progresses.length > 0) {
progresses.forEach((t, i) => progresses[i] = t + speeds[i])
var count = 0;
var index = 0;
while (progresses[count] >= 100) {
progresses.shift();
speeds.shift()
index++;
}
index > 0 && answer.push(index)
}
return answer;
}
function solution(priorities, location) {
let answer = 0;
let prioArr = []
priorities.forEach((t, i) => {
prioArr.push({ index: i, priority: t })
})
while (prioArr.length > 0) {
let temp = prioArr.shift();
if (prioArr.find(p => p.priority > temp.priority)) {
prioArr.push(temp)
} else {
answer++;
if (temp.index === location) {
return answer;
}
}
}
}
function solution(bridge_length, weight, truck_weights) {
let answer = 1;
let bridge = new Array(bridge_length - 1).fill(0);
let waitTruck = truck_weights.shift();
bridge.push(waitTruck);
let bridgeWeight = waitTruck;
while (bridgeWeight) {
bridgeWeight -= bridge.shift();
waitTruck = truck_weights[0];
if (bridgeWeight + waitTruck <= weight) {
truck_weights.shift();
bridge.push(waitTruck);
bridgeWeight += waitTruck;
} else {
bridge.push(0);
}
answer++;
}
return answer;
}
def solution(prices):
answer = [0 for _ in range(len(prices))]
stack=[]
for i in range(len(prices)):
while len(stack)!=0 and prices[i]<prices[stack[len(stack) -1]]:
temp = stack.pop()
answer[temp] = i-temp
stack.append(i)
while len(stack):
temp = stack.pop()
answer[temp] = len(prices) - temp - 1
return answer