解答)白準-13305/ガソリンスタンド
質問リンク
問題の概要
1. 제일 왼쪽 도시에서 제일 오른쪽 도시로 이동 할 때 드는 최소 비용을 구하라
2. 각 도시엔 1개의 주유소가 있고 각 도시 사이엔 도로가 있다.
3. 첫 도시에서는 항상 주유를 하고 이동해야한다.
どうやって解くの?
1. 가장 기름값이 저렴한 도시에서 최대한 많은 기름을 주유해야 한다.
2. 현재 도시의 기름값 보다 저렴한 도시를 순서대로 체크하고 이동거리만큼 주유해야 한다.
コード#コード#
n = int(input())
road = list(map(int, input().split(' ')))
price = list(map(int, input().split(' ')))
result = 0
cur_pos = 0 # 현재 위치
cur_price = price[0] # 현재 기름값
for i in range(len(road)):
result += cur_price * road[cur_pos]
cur_pos +=1
if cur_price > price[i+1]:
cur_price = price[i+1]
print(result)
コード解析
line 8. 비용합산 -> 위치 이동(다음 도시로) -> 현재가격이 더 높은 경우만 다음 도시의 가격으로 변환
フィードバック
가격 따로, 위치 따로 변수를 설정해서 해결하니 쉬웠다.
-> 묶어서 처리하기 복잡한 문제는 나누어서 하는게 더 효율적이다.
Reference
この問題について(解答)白準-13305/ガソリンスタンド), 我々は、より多くの情報をここで見つけました https://velog.io/@wjdcksdud29/문제풀이-백준-13305-주유소テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol