[백준] 13305번

그녕·2023년 1월 31일
0

백준 13305번 주유소

1. 시도

제일 최소인 가격인 애를 구해서 그 뒤부터 쫙 거리를 다 더해주고 최소인 애를 곱해주는걸로 생각했는데 그렇게 하려고 하니 그 최소인 인덱스 앞에 애들은 또 그 최소값을 찾아주고 for문을 돌려줘야해서 난관에 부딪힘..

2.풀이

제일 처음 주유소에서는 무조건 그 다음 거리를 가줘야하므로 무조건 result값을 가지게 된다.
그래서 result= data1[0]*data2[0]으로 둔다.

그럼 제일 첫 주유소는 해결이고 for문으로 인덱스가 1인 두번째 주유소부터 끝까지 주유소를 다 돌아줘야 한다. for문안에서는 현재 주유소 가격이 그 앞의 주유소 가격보다 싸면 현재 주유소 가격을 최소 주유소 가격으로 설정해주고 그 현재 최소인 가격 * 그 주유소 거리를 해주고 그렇게 단계를 넘어가면 된다.

3.코드

import sys
a= int(input())
input = sys.stdin.readline
data1 = list(map(int,input().split()))
data2 = list(map(int,input().split()))
d= data2[0]
result= data1[0]*data2[0]
for i in range(1,a-1):
    if d > data2[i]:#현재 주유소가 더 싸면
        d= data2[i]
    result += d*data1[i]
print(result)

0개의 댓글