문제
13305번: 주유소
표준 입력으로 다음 정보가 주어진다. 첫 번째 줄에는 도시의 개수를 나타내는 정수 N(2 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 인접한 두 도시를 연결하는 도로의 길이가 제일 왼쪽 도로부터 N-1
www.acmicpc.net
입력
- 표준 입력으로 다음 정보가 주어진다. 첫 번째 줄에는 도시의 개수를 나타내는 정수 N(2 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 인접한 두 도시를 연결하는 도로의 길이가 제일 왼쪽 도로부터 N-1개의 자연수로 주어진다. 다음 줄에는 주유소의 리터당 가격이 제일 왼쪽 도시부터 순서대로 N개의 자연수로 주어진다. 제일 왼쪽 도시부터 제일 오른쪽 도시까지의 거리는 1이상 1,000,000,000 이하의 자연수이다. 리터당 가격은 1 이상 1,000,000,000 이하의 자연수이다.
출력
- 표준 출력으로 제일 왼쪽 도시에서 제일 오른쪽 도시로 가는 최소 비용을 출력한다.
문제 풀이
- 첫 번째 기름은 무조건 충전해야 하므로 첫 번째 주유소의 기름값과 도로길이를 곱해서 결과 값 업데이트
- 그 후, 기름 값이 낮은 곳에서 충전 해 나가면 되므로, 이전 최소 기름 값보다 현재의 기름 값이 더 싸다면, 최소 기름 값 업데이트
- 최소 기름 값과 도로 길이를 곱해서 결과 값에 더해준다
- 결과 값 출력
코드
n = int(input())
road = list(map(int,input().split()))
price = list(map(int,input().split()))
result = price[0] * road[0]
min_price = price[0]
for i in range(1, len(price) - 1):
if min_price > price[i]:
min_price = price[i]
result += min_price * road[i]
print(result)'Algorithm > 백준' 카테고리의 다른 글
| [Python] 1541번 '잃어버린 괄호' (0) | 2023.01.18 |
|---|---|
| [Python] 백준 11399번 'ATM' (0) | 2023.01.17 |
| [Python] 백준 1931번 '회의실 배정' (0) | 2023.01.17 |
| [Python] 백준 16928번 '뱀과 사다리 게임' (DFS/BFS) (0) | 2023.01.09 |
| [Python] 백준 11047번 "동전 0" (그리디) (0) | 2023.01.04 |