2024/10/08
(Lv0) 235개 (Lv1) 73개 (Lv2) 53개 (Lv3) 9개 // 누적 370개
풀이한 문제
Lv2
- 다리를 지나는 트럭
문제 풀이
from collections import deque
def solution(bridge_length, weight, truck_weights):
answer = 0
moving = deque()
truck_weights = deque(truck_weights)
sum_moving = 0
while truck_weights:
l = truck_weights.popleft()
if sum_moving+l <= weight:
if len(moving) < bridge_length: #[10]+10 <= 100, len([10])<2
sum_moving += l
moving.append(l) #[7]
answer += 1
elif len(moving) == bridge_length: #[10,10]+10 <= 100, len([10,10])==2
sum_moving -= moving.popleft()
sum_moving += l
moving.append(l)
answer += 1 # 다리 지나감과 동시에 한 트럭 입장
elif sum_moving+l > weight :
if len(moving) < bridge_length: #[7]+4 > 10, len([7])<2
for i in range(bridge_length-len(moving)):
moving.append(0)
answer += 1 #2
while sum_moving+l > weight:
sum_moving -= moving.popleft() #[7,0] -> [7][0]
answer += 1
sum_moving += l
moving.append(l) #[0,4], 3
elif len(moving) == bridge_length: #[7,2]+4 > 10, len([7,2])==2
while sum_moving+l > weight:
sum_moving -= moving.popleft()
answer += 1
if sum_moving+l > weight:
moving.append(0)
sum_moving += l
moving.append(l)
# return list(moving), answer
if len(moving) >= bridge_length:
answer += len(moving)
else:
answer += bridge_length
return answer
테스트 문제 1개에서 에러가 나서.. 해결하지 못했다.. 도대체 왜 문제인것이냐ㅜ
미완성 문제
Lv2
- 다리를 지나는 트럭
코딩 코딩테스트 코테챌린지 코테 프로그래머스 취준생 알고리즘