Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 바텀업
- 오픽
- 다이나믹프로그래밍
- topdown
- XML
- 주석
- 오픽가격
- 오픽점수잘받는방법
- 오픽노잼
- 안드로이드
- dynamicProgramming
- 영어말하기
- ㅂ
- XML주석
- 오픽공부법
- English
- opic
- 이진탐색 #나무 자르기
- stack 스택
- 디피
- 오픽노잼공부방법
- 영어회화
- 이진탐색
- dp
- 피보나치수열
- 메모이제이션
- 탑다운
- fibo
- 안드로이드주석
Archives
RUBY
[프로그래머스] 다리를 지나는 트럭 본문
출처:: programmers.co.kr/learn/courses/30/lessons/42583?language=python3
분류:: 스택,큐
1. 문제 이해 및 해결과정
1. 스택
1. 다리길이 만큼 bridge를 만들어 준다 2. bridge가 빌때까지 , (다리에 있는 모든 것이 지나갈때까지) 2-1. bridge는 왼쪽부터 빠져나가므로 왼쪽pop, 시간 증가 => 시간에 따라 무조건 진행되는 과정 3. 다리를 지나가야할 트럭이 있을 경우 3-1. 현재 다리를 지나가야할 트럭 + 현재 다리를 지나고 있는 트럭의 무게 합이 다리가 가능한 무게 보다 작거나 같으면, 현재 다리를 지나가야할 트럭을 다리에 추가해준다. 3-2. 현재 다리를 지나가야할 트럭이 들어가서 가능한 무게를 초과하다면, 가능한 무게가 될 때까지 기다리는 과정이 필요하다 => bridge.append(0) |
2. 풀이방법
1. [ python ] 스택
def solution(bridge_length, weight, truck_weights):
bridge=[0]*bridge_length #다리
t=0
while bridge: #다리에 모든 것이 지나갈때까지
bridge.pop(0) #다리의 왼쪽 빠져나감
print(bridge)
print(t)
t+=1
if truck_weights: #남은 트럭이 있으면
if sum(bridge)+truck_weights[0]<=weight: #가능한 무게라면
bridge.append(truck_weights.pop(0))
else:
bridge.append(0) #0을 넣어줌 , 가능한 무게가 될때까지
print(bridge)
return t
3. 오답원인
4. 알게된 점
'PS > Programmers' 카테고리의 다른 글
[프로그래머스] 멀쩡한 사각형 (0) | 2020.10.15 |
---|---|
[프로그래머스] 기능개발 (0) | 2020.10.15 |
[프로그래머스] 스킬트리 (0) | 2020.10.14 |
[프로그래머스] 최대공약수와 최소공배수 (0) | 2020.10.14 |
[프로그래머스] 두 개 뽑아서 더하기 (0) | 2020.09.22 |
Comments