https://www.acmicpc.net/problem/13305
13305번: 주유소
표준 입력으로 다음 정보가 주어진다. 첫 번째 줄에는 도시의 개수를 나타내는 정수 N(2 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 인접한 두 도시를 연결하는 도로의 길이가 제일 왼쪽 도로부터 N-1
www.acmicpc.net
문제 요약
출발 지점에서 끝 지점으로 가는 최소 비용 리턴
풀이
기름값이 가장 저렴한 도시에서 기름을 최대한 많이 채우면 된다.
출발 지점부터 끝 지점까지의 가격을 훑어보면서, 최저가 도시를 찾는다면 현재 필요한 비용을 해당 도시의 가격을 기준으로 갱신해준다.
# 백준 13305 주유소 https://www.acmicpc.net/problem/13305
# 도시마다 주유소가 있음.
# 처음에서 끝으로 가는 최소 비용 리턴
n = int(input())
dist = list(map(int, input().split()))
cost = list(map(int, input().split()))
# 가장 싼 주유소를 만났을 때, 해당 주유소의 가격으로 나머지 기름을 채울 수 있도록 한다.
result = 0
c = cost[0]
for i in range(n-1):
# 현재 도시의 가격이 이전 도시의 가격보다 적다면, c 값을 현재 도시의 가격으로 갱신
if c > cost[i]:
c = cost[i]
# 총 비용에 c와 현재 도로의 길이를 곱해주어 필요한 비용만큼 누적해줌.
result += c * dist[i]
print(result)
728x90
'알고리즘' 카테고리의 다른 글
[프로그래머스 프렌즈4블록] - 파이썬 풀이 (0) | 2023.05.17 |
---|---|
[백준 2096 내려가기] - 파이썬 풀이 (골드5) (0) | 2023.05.14 |
[백준 1806 부분합] 파이썬 풀이 (골드 4) (0) | 2023.05.12 |
[백준 14502 연구소] 파이썬 풀이 (골드4) (1) | 2023.05.11 |
[백준 1991] 트리 순회 - 파이썬 풀이 (실버1) (0) | 2023.05.10 |