13305 주유소
13305번: 주유소
표준 입력으로 다음 정보가 주어진다. 첫 번째 줄에는 도시의 개수를 나타내는 정수 N(2 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 인접한 두 도시를 연결하는 도로의 길이가 제일 왼쪽 도로부터 N-1
www.acmicpc.net
- 내 풀이
1. for문 돌면서 거리를 리터당 가격이 더 작은 값이 나올때까지 tmp에 거리를 더해간다
2. 더 작은 값이 나오면 앞의 tmp로 비용 더해준 후
3. tmp를 초기화하고, 최소비용 저장한 후 다시 1번 반복
-> 리터값을 힙에 넣으면 min쓸필요없이 바로 가능
N = int(input())
roads = list(map(int,input().split()))
costs = list(map(int,input().split()))
# 첫번째 값 더하기
min_price = roads[0] * costs[0]
# 가장 값이 싼 주유소 지정
min_cost = costs[0]
for i in range(1, N-1):
if min_cost > costs[i]: # 가장 값이 싼 주유소가 현재 주유소 보다 비싸면 바꿔준다.
min_cost = costs[i] # 값 싼 주유소로 바꿔주기
min_price += min_cost * roads[i]
print(min_price)
'코딩테스트 > BOJ' 카테고리의 다른 글
| [백준] [그리디] 1449. 수리공 항승 (0) | 2023.07.11 |
|---|---|
| [백준] [그리디] 16953. A → B (0) | 2023.07.11 |
| [백준] [구현] 14719. 빗물 (0) | 2023.07.08 |
| [BFS] 14620. 꽃길 (0) | 2023.07.08 |
| [백준] [BFS][그룹화] 2573. 빙산 (0) | 2023.07.08 |