1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | def solution(bridge_length, weight, truck_weights): stack = [] success = [] current_weight = 0 cnt = 0 while True: if success and not stack and not current_weight: break for i in range(len([j for j in stack])): stack[i][1] += 1 for i in [j for j in stack if j[1] > bridge_length]: current_weight -= i[0] success.append(i[0]) stack.remove(i) try: if weight - current_weight >= truck_weights[0]: truck_weight = truck_weights.pop(0) current_weight += truck_weight stack.append([truck_weight, 1]) except: pass cnt += 1 return cnt | cs |
'알고리즘' 카테고리의 다른 글
프로그래머스 단어 변환 (파이썬, DFS) (0) | 2021.04.21 |
---|---|
프로그래머스 체육복 - 파이썬 (탐욕법) (0) | 2020.11.09 |
프로그래머스 크레인 인형뽑기 게임 - 2019 카카오 개발자 겨울 인턴십 ( 파이썬 ) (0) | 2020.09.29 |
프로그래머스 문자열 압축 - 2020 KAKAO BLIND RECRUITMENT (파이썬) (0) | 2020.09.28 |
프로그래머스 튜플 - 2019 카카오 개발자 겨울 인턴십 (파이썬) (0) | 2020.09.28 |