[백준] 13305번 : 주유소 (Python)

2023. 3. 15. 01:12알고리즘/그리디

https://www.acmicpc.net/problem/13305

 

13305번: 주유소

표준 입력으로 다음 정보가 주어진다. 첫 번째 줄에는 도시의 개수를 나타내는 정수 N(2 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 인접한 두 도시를 연결하는 도로의 길이가 제일 왼쪽 도로부터 N-1

www.acmicpc.net

💡 문제 접근

  • 가장 싼 주유소를 찾아야 함
  • 이외에는 당장 가야 할 거리만큼만 계산함
    • => 아이디어 오류,  가장 싼 주유소가 아니라도 현재가 미래의 주유소들보다 싸다면 미리 구매해야 함

 

💡 해결 

  • 이동하면서 최저 주유소 값을 갱신 해줌

 

 

💡 내 코드

n = int(input())
d = list(map(int, input().split()))
m = list(map(int, input().split()))


money_sum = d[0] * m[0] # 첫번째 주유소에서는 다음 거리 만큼 주유

min_m= m[0] # 가장 싼 주유소를 처음 주유소로 지정

for i in range(1,n-1):
    if min_m > m[i]: #더 싼 주유소 찾으면
        min_m= m[i]# 가장 싼 주유소로 갱신
        money_sum += min_m* d[i]
    else:
        money_sum += min_m* d[i]
print(money_sum)