https://www.acmicpc.net/problem/13305
도시개수 = int(input())
도시간거리 = list(map(int, input().split()))
도시별유가 = list(map(int, input().split()))
최저가 = min(도시별유가)
현재도시 = 0
최소비용 = 0
while True:
# 제일 싼 곳에 도착했으면 여기서 풀충전한다
if 도시별유가[현재도시] == 최저가:
최소비용 += 최저가 * sum(도시간거리[현재도시:])
break
# 현재보다 싼 곳이면 그까지 가서 충전한다
for 도시 in range(현재도시 + 1, 도시개수):
if 도시별유가[현재도시] > 도시별유가[도시]:
최소비용 += 도시별유가[현재도시] * sum(도시간거리[현재도시:도시])
현재도시 = 도시
break
print(최소비용)
나도 고수가 아니지만 초심자 시절엔 정말 직관적인 코드도 설명없이 읽기 힘들었던 기억이 난다.
개인적으로는 한글로 변수명을 지어보니 다시 코드를 봤을 때 별 설명이 없어도 이해를 할 수 있었다.
나와 비슷한 고통을 겪은 누군가는 이걸로 도움을 얻을까? ~.~