스택/큐 [Programmers]

자몽·2021년 7월 31일
1

알고리즘

목록 보기
6/31

알고리즘: 스택/큐

https://programmers.co.kr/learn/courses/30/parts/12081

기능 개발 (level.2)

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;
}

프린터 (level.2)

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;
            }
        }
    }
}

다리를 지나는 트럭 (level.2)

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;
}

주식 가격 (level.2)

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
profile
꾸준하게 공부하기

0개의 댓글