-
[BOJ 13305, Python 3] 주유소알고리즘/BOJ 2021. 8. 1. 13:27반응형
https://www.acmicpc.net/problem/13305
풀이
시작 도시의 기름값을 oil이라는 변수로 잡아두고 한 도시씩 이동하면서, i번째 도시의 기름값이 oil보다 작은지 확인해봅니다.
이때 기름값이 oil보다 작으면 oil의 값을 변경해주고 다시 한 도시씩 이동하면서 윗 줄을 반복합니다.
증명
일단 차가 무조건 이동해야하므로 처음 도시 기름 값을 이용해야 하는 것은 당연합니다.
그러다가 i번째 도시에 도착한 경우를 생각해봅시다.
1) i번째 도시의 기름 값이 지금 사용하고 있는 기름 값보다 비쌀 때
이 경우에는 현재 사용하고 있는 기름을 계속 이용하는 것이 최선입니다.
2) i번째 도시의 기름 값이 지금 사용하고 있는 기름 값보다 쌀 때
기름 값이 더 싸지므로 앞으로는 i번째 도시의 기름 값을 사용하는 것이 최선입니다.
코드
123456789101112n = int(input())road = [*map(int, input().split())]city = [*map(int, input().split())]oil = city[0]ans = 0for i in range(1, n):ans += road[i-1] * oilif city[i] < oil: oil = city[i]print(ans)cs 반응형'알고리즘 > BOJ' 카테고리의 다른 글
[BOJ 1449, Python 3] 수리공 항승 (0) 2021.08.02 [BOJ 13413, Python 3] 오셀로 재배치 (0) 2021.08.01 [BOJ 2847, Python 3] 게임을 만든 동준이 (0) 2021.08.01 [BOJ 2217, Python 3] 로프 (0) 2021.07.31 [BOJ 1783, Python 3] 병든 나이트 (0) 2021.07.31