부트캠프

[10일차] TIL - Week1 Test

반응형

첫 주차 알고리즘 시험

 

1. 기능 개발

https://programmers.co.kr/learn/courses/30/lessons/42586

내 풀이

def solution(progresses, speeds):
    stack = []
    cnt = 0
    for idx, prog in enumerate(progresses):
        work_day = 0
        while True:
            prog += speeds[idx]
            work_day += 1
            if prog >= 100:
                break
        stack.append(work_day)
        
# stack = [7, 3, 9]
# stack = [5, 10, 1, 1, 20, 1]

stack에 각 기능이 완성되는 시간을 쌓은 후 내림차순으로 자른는 과정에서 해결이 되지 않았습니다.

다음은 큐처럼 구현한 풀이입니다.

def solution(progresses, speeds):
    answer = []
    days = 0
    count = 0

    while len(progresses) != 0:
        if progresses[0] + days * speeds[0] >= 100:
            progresses.pop(0)
            speeds.pop(0)
            count += 1
        else:
            if count > 0:
                answer.append(count)
                count = 0 
            days += 1    
    

    answer.append(count)

    return answer

 

 

2. 다리를 지나는 트럭

https://programmers.co.kr/learn/courses/30/lessons/42583

 

def solution(bridge_length, weight, truck_weights):
    # bridge_length = 2
    # weight = 10
    # truck_weights = [7, 4, 5, 6]
    
    on_bridge = [0] * bridge_length
    time = 0
    
    while on_bridge:
        time += 1
        on_bridge.pop(0)
        if len(truck_weights) != 0:
        # if truck_weights:
            if sum(on_bridge) + truck_weights[0] <= weight:
                # on_bridge.pop(0)
                on_bridge.append(truck_weights[0])
                truck_weights.pop(0)
            else:
                on_bridge.append(0)
        
    return time

 

반응형

'부트캠프' 카테고리의 다른 글

[알고리즘 1주차] WIL  (0) 2022.03.20
[11일차] TIL (DFS)  (0) 2022.03.18
[9일차] TIL (Hash Table)  (0) 2022.03.16
[5일차] TIL (문자열 다루기)  (0) 2022.03.13
[3일차] TIL  (0) 2022.03.10