반응형
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- Java
- 개발자
- 자바
- 운영체제
- Python
- Kakao
- 코딩테스트
- 스프링부트
- Linux
- C
- 스프링
- 리눅스
- Elasticsearch
- 카카오
- docker
- springboot
- 알고리즘
- 백엔드
- 프로그래머스
- 엘라스틱서치
- 프로그래머스 #카카오 #IT #코딩테스트
- Spring
- 쿠버네티스
- 네트워크
- DPDK
- IT
- programmers
- 도커
- 파이썬
- 캐시
Archives
- Today
- Total
저고데
[프로그래머스]다리를 지나는 트럭 본문
728x90
반응형
문제 링크 : https://school.programmers.co.kr/learn/courses/30/lessons/42583
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제를 간략히 요약하면 다음과 같다.
다리의 길이를 의미하는 bridge_length와 다리 위에 놓을 수 있는 최대 무게를 의미하는 weight, 그리고 트럭의 종류를 나타나는 배열인 truck_weights가 주어진다.
트럭이 다리를 건널 때, truck_weights 순서대로 이동할 수 있다.
이 때, 트럭의 무게가 최대 무게보다 작거나 같으면 여러 트럭이 순차적으로 건널 수 있을 때, 모든 트럭이 다리를 건널 때 걸리는 시간이 얼마인지 반환해야 한다.
코드를 작성하기 위한 순서는 다음과 같다.
1. 다리를 구현하기 위한 배열 bridge를 만들고, 모든 원소를 0으로 해준다.
2. answer를 +1 해주면서 bridge를 pop해주고 bridge의 원소의 합이 최대 무게보다 작다면 트럭을 다리 위에 하나 더 올려주고 그렇지 않다면 0을 추가해준다.
def solution(bridge_length, weight, truck_weights):
answer = 0
bridge=[0 for _ in range(bridge_length)] #1번
while bridge: #bridge의 원소가 없다면 모든 트럭이 다리를 건넜다는 것을 의미한다.
answer+=1
bridge.pop(0) #트럭이 한 칸씩 움직이는 것을 나타내기 위해 맨 앞에서부터 pop을 해준다.
if truck_weights:
if sum(bridge)+truck_weights[0]<=weight: #다리 위의 무게 합이 최대 무게보다 작거나 같다면
bridge.append(truck_weights.pop(0)) #트럭 하나를 더 올려준다.
else:
bridge.append(0) #모든 트럭을 다리 위에 올리기 전까지 다리의 길이는 변하면 안되기 때문에, 그렇지 않다면 0을 추가해준다.
return answer
728x90
반응형
'프로그래머스' 카테고리의 다른 글
[프로그래머스]수식 최대화 (0) | 2023.01.24 |
---|---|
[프로그래머스]택시 합승 요금 (0) | 2023.01.23 |
[프로그래머스]큰 수 만들기 (1) | 2023.01.20 |
[프로그래머스]가장 큰 수 (0) | 2023.01.20 |
[프로그래머스]체육복 (0) | 2023.01.20 |