백준 13305 주유소 python 풀이

02·2022년 6월 26일
0

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(최소비용)

나도 고수가 아니지만 초심자 시절엔 정말 직관적인 코드도 설명없이 읽기 힘들었던 기억이 난다.
개인적으로는 한글로 변수명을 지어보니 다시 코드를 봤을 때 별 설명이 없어도 이해를 할 수 있었다.
나와 비슷한 고통을 겪은 누군가는 이걸로 도움을 얻을까? ~.~

profile
코스피 9000 기원, 내 취직도 기원

0개의 댓글