BackEnd King KY

백준 13305 본문

Algorithms

백준 13305

Django King, Lee 2022. 4. 5. 19:00
728x90

✔️문제

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

 

13305번: 주유소

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

www.acmicpc.net

✔️풀이

n = int(input())
l = list(map(int, input().split()))
p = list(map(int, input().split()))
    
a=0
cost = p[0]

for i in range(n-1):
    if cost > p[i]:
        cost = p[i]
    a += cost * l[i]

print(a)

l은 거리의 값을 저장하는 리스트, p는 가격을 저장하는 리스트입니다.

 

결국, 값들이 작을 때만 거리와 곱해줘야 하므로 최소값을 갱신하는 방향으로 했습니다.

 

그래서 첫 값인 cost에 가격의 0번째 인덱스를 넣었습니다.

 

가격을 반복문 돌릴 때, p[0]보다 크면 그 땐 곱해주면 안되므로 최소값인 cost를 갱신하지 않습니다. 

 

그렇게 해서 그 때의 최소값들과 거리의 곱을 꾸준히 더해가는 풀이입니다.

✔️ValueError

l = list(map(int, input().split()))
p = list(map(int, input().split()))

이 부분을 처음엔

 for i in range(n-1):
     l.append(int(input()))

 for i in range(n):
     p.append(int(input()))

이렇게 해서 값을 받는 형태로 했는데 여기서 ValueError 가 발생했었습니다.

 

이 부분은 찾아봐야겠습니다..

'Algorithms' 카테고리의 다른 글

백준 1789  (0) 2022.04.03
백준 10162  (0) 2022.04.02
백준 2217  (0) 2022.04.01
백준 1541  (0) 2022.03.30
백준 1026  (0) 2022.03.29