백준|13305번|주유소

README·2022년 7월 31일
0

파이썬 PS풀이

목록 보기
33/136

문제설명
각 도시간의 거리와 각 도시별 주유소의 리터당 가격을 입력받고 첫도시부터 마지막도시까지 최소한의 기름값을 소비하며 운행했을 때 최소한의 기름값을 출력하는 문제입니다.

작동 순서
1. 각 도시의 거리와 기름값을 입력받습니다.
2. 각 도시에서부터 기름값이 더 싼 도시까지의 거리와 지나갈 도시의 개수를 구합니다.
3. 그 도시까지의 거리만큼 현재 도시에서 기름을 구매하고 가격을 Price에 더해줍니다.
4. 반복문에서 지나간 도시의 차례가 오면 현재 차가 있는 도시까지 그 차례를 무시하고 넘어갑니다.
5. 모든 도시를 운행하며 기름값을 구합니다.
6. 기름값을 출력합니다.

소스코드

N = int(input())
Distance = list(map(int, input().split()))
OilPrice = list(map(int, input().split()))
Price, CityNumber = 0, 0
for i in range(len(OilPrice)):
    if i != CityNumber:
        continue
    GoDistance = 0
    for j in range(i, len(Distance)):
        GoDistance += Distance[j]
        CityNumber += 1
        if OilPrice[i] > OilPrice[j+1]:
            break
    Price += GoDistance * OilPrice[i]
print(Price)
profile
INTP 개발자 지망생

0개의 댓글