깃허브:
https://programmers.co.kr/learn/courses/30/lessons/42583
https://minhamina.tistory.com/241
입출력 예를 이해하기 힘든 부분이 있어서 인터넷을 따로 참고했다.
내가 짠 알고리즘으로는 큐에 값이 들어갈 때마다 시간이 지나가고 모든 트럭이 다 다리를 지나간게 확인이 되면 종료하게 되는데, 그렇게 하면 마지막 트럭이 지나갈 때 시간 카운팅을 안해주기 때문에 시간이 answer라 하면 answer+1을 리턴해줘야 한다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
def solution(bridge_length, weight, truck_weights):
queue = []
dochak = 0
answer = 0
qw = 0
end = len(truck_weights)
point = 0
while dochak != end :
if len(queue) == bridge_length:
p = queue.pop(0)
qw -= p
if p != 0 :
dochak += 1
elif point == end:
queue.append(0)
answer += 1
elif qw + truck_weights[point] > weight :
queue.append(0)
answer += 1
elif qw + truck_weights[point] <= weight :
queue.append(truck_weights[point])
qw += truck_weights[point]
point += 1
answer += 1
return answer + 1
|
'프로그래머스 풀이' 카테고리의 다른 글
프로그래머스 3단계 - 가장 먼 노드 (Python, Java) (0) | 2021.08.31 |
---|---|
프로그래머스 2단계 - 피보나치 수(Python) (0) | 2021.08.09 |
프로그래머스 2단계 - 카펫(Java) (0) | 2021.08.09 |
프로그래머스 1단계 - K번째 수(Python) (0) | 2021.08.01 |
프로그래머스 3단계 - 이중우선순위큐(Python, Java) (0) | 2021.07.30 |