반응형
첫 주차 알고리즘 시험
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 |