다은하게

백준 [13305. 주유소] - python 본문

코딩테스트/백준

백준 [13305. 주유소] - python

DaaEun 2021. 4. 7. 16:57

문제 13305번 : 주유소

 

13305번: 주유소

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

www.acmicpc.net

 

풀이 

  • 인접한  두 도시 사이의 도로의 길이에 대한 (n-1)개의 road 리스트와 주유소의 리터당 가격에 대한 n개의 oilPrice 리스트를 입력받는다. 
  • 제일 왼쪽 도시의 기름 금액을 cheap_oil(저렴한 금액)로 선언 및 초기화한다.
  • 총 금액, total(출력값)은 각 도로의 길이와 지불한 기름 금액(cheap_oil)의 곱의 합이다. 
  • oilPrice 리스트에서 각 도시의 기름 금액을 비교하면서 cheap_oil보다 더 저렴한 금액이 존재하면, cheap_oil 값에 그 금액을 대입한다.

 

☞ 코드

import sys

# 입력값 받기
n = int(sys.stdin.readline())
road = list(map(int, sys.stdin.readline().split()))
oilPrice = list(map(int, sys.stdin.readline().split()))

# 출력값, 총 비용 선언 및 초기화
total = 0

# 싼 금액의 기름 선언 및 초기화
cheap_oil = oilPrice[0]

for i, price in enumerate(oilPrice):

    # road의 크기는 oilPrice의 크기보다 1 작다.
    if(i == n-1): break

    if(cheap_oil > price): 
        cheap_oil = price
    
    total += cheap_oil * road[i]    

print(total)

 

☞ 결과

  • 맞았습니다!! 
  • 메모리 : 148424 KB
  • 시간 : 156 ms

'코딩테스트 > 백준' 카테고리의 다른 글

백준 [1629. 곱셈] - python  (0) 2021.04.10
백준 [14405. 피카츄] - python  (0) 2021.04.10
백준 [1920. 수 찾기] - python  (0) 2021.04.05
백준 [1764. 듣보잡] - python  (1) 2021.04.04
Comments