본문 바로가기
코딩test공부/백준python

13305.주유소

by 왕방개 2024. 1. 9.

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

 

13305번: 주유소

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

www.acmicpc.net

1.설명

제가 생각한 방법은 n개의 도시가 할때 첫번쨰 도시에서 두번쨰 도시로 갈때 최소비용으로 채워야하므로 cost값을 길이[0]*도시가격[0]으로 시작하고, 그 다음 price중 최소값이 존재할때 거기서 기름을 다 채우는 방법으로 계산했습니다. 문제를 처음 봤을떄 BFS(best first search)를 활용하여 구하려고했으나. 그것보다 쉬운 방법이 있을꺼같아서 이방법으로 풀어봤습니다.

 

 코드 자체에서 봐야할껀 for문 정도 있을꺼같아요! for문 안에서 price[i]이 첫번쨰 도시에서 cost값을 더하고 나서 만약 그 다음 도시에서 price가 더 낮을 경우, 값을 반환해 cost값에 더하는 방식으로 계산했습니다!

 

 

 

 

2. 코드

N=int(input())
length=list(map(int,input().split()))
price=list(map(int,input().split()))
cost=0
m=price[0] 
for i in range(N-1):
  if price[i]<m:
    m=price[i]
  cost+=m*length[i]
  
  
print(cost)

'코딩test공부 > 백준python' 카테고리의 다른 글

2512.예산  (0) 2024.01.11
20920.영단어 암기는 괴로워  (1) 2024.01.10
9017.크로스 컨트리  (1) 2024.01.08
1244.스위치 끄고 켜기  (2) 2024.01.04
8979.올림픽  (1) 2024.01.03