https://www.acmicpc.net/problem/13305
13305번: 주유소
표준 입력으로 다음 정보가 주어진다. 첫 번째 줄에는 도시의 개수를 나타내는 정수 N(2 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 인접한 두 도시를 연결하는 도로의 길이가 제일 왼쪽 도로부터 N-1
www.acmicpc.net
처음에 문제를 제대로 이해를 못해서 접근을 잘못했었는데 생각하다보니 복잡해져서 결국 또 구글링 on.
Key Point는
- 각 도시 간의 거리를 모두 합한 값 = 주유해야 하는 양 (1km 이동 시마다 1리터 사용하므로)
- 최소 비용으로 주유를 해야하므로 기름값이 가장 싼 도시에서 주유를 많이 하면 좋은 것
- 처음에는 기름값이 싸든 비싸든 무조건 주유를 하고 시작해야 함
- 가장 싼 기름값을 변수에 저장해두고 각 도시를 지날 때마다 기름값을 비교해가면서 더 싸면 해당 변수에 갱신해야 함
참고한 블로그에서 설명을 잘해놔서 아래 링크를 첨부할 테니 직접 들어가서 보면 더 도움이 될 듯하다.
n = int(input())
distance = list(map(int, input().split()))
price = list(map(int, input().split()))
sum = 0
min_price = price[0]
sum += min_price * distance[0]
for i in range(1, n-1):
if min_price > price[i]:
min_price = price[i]
sum += min_price * distance[i]
print(sum)
참고 :
https://hongcoding.tistory.com/25
[백준] 13305 주유소 (Python 파이썬)
www.acmicpc.net/problem/13305 13305번: 주유소 표준 입력으로 다음 정보가 주어진다. 첫 번째 줄에는 도시의 개수를 나타내는 정수 N(2 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 인접한 두 도시를 연결하는
hongcoding.tistory.com
'알고리즘 > 백준 풀이' 카테고리의 다른 글
[백준/Python] #1260 : DFS와 BFS - DFS/BFS (1) | 2023.04.13 |
---|---|
[백준/Python] #2941 : 크로아티아 알파벳 - 구현 (0) | 2023.03.23 |
<미해결> [백준/Python] #1316 : 그룹 단어 체커 - 구현 (0) | 2023.03.23 |
[백준/Python] #4673 : 셀프 넘버 - 구현 (1) | 2023.03.23 |
[백준/Python] #1931 : 회의실 배정 - 그리디 (0) | 2023.03.19 |