반응형
[ Contents ]
1. 문제 (링크 참조)
13305번: 주유소
표준 입력으로 다음 정보가 주어진다. 첫 번째 줄에는 도시의 개수를 나타내는 정수 N(2 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 인접한 두 도시를 연결하는 도로의 길이가 제일 왼쪽 도로부터 N-1
www.acmicpc.net
2. 문제 풀이
최소의 주유비용으로 거리를 완주해야하는 문제입니다.
2022.01.26 - [Algorithm] - [Algorithm] 탐욕적인 그리디 알고리즘, 직관적이고 쉬운 문제해결
[Algorithm] 탐욕적인 그리디 알고리즘, 직관적이고 쉬운 문제해결
경주마들을 자세히 보면, 양쪽 시야를 차단하는 안대를 끼고 있습니다. 이를 '차안대' 라고 합니다. 말의 눈은 양 옆에 달려 있어 시야가 '350도'나 됩니다. 자기 자신 빼곤 다 보이기 때문에, 다
star7sss.tistory.com
지난 주유소 중 가장 싼 가격으로 주유하면 됩니다. 실제로는 한 번 지나가면 이전 주유소로 돌아갈 수 없지만, 프로그래밍 상에서는 '그 주유소에서 주유했다는 셈'치고 계산할 수 있습니다.
3. 코드
import sys
input = sys.stdin.readline
# 입력
N = int(input())
road = list(map(int, input().split()))
cost = list(map(int, input().split()))
# 그리디 알고리즘
min_cost = 1000000001 # 최대 가격
res = 0 # 최소 기름값
for dist, cost in zip(road, cost):
min_cost = min(min_cost, cost)
res += min_cost * dist
print(res)
zip() 함수를 이용해서 거리와 주유소 가격을 1개씩 꺼냅니다. 여태까지 주유소 가격 중에서 가장 싼 가격을 저장하고, 거기서 기름을 충전합니다.
맨 마지막 도시의 주유소 가격은 어차피 필요가 없으므로, 무시합니다.
반응형
'Algorithm' 카테고리의 다른 글
[구현/수학] 백준 9076 점수 집계 - 파이썬(Python) (0) | 2022.06.12 |
---|---|
[구현/수학] 백준 5361 전투 드로이드 가격 - 파이썬(Python) (0) | 2022.06.11 |
[정렬/탐색] 백준 11728 배열 합치기 - 파이썬(Python) (0) | 2022.06.09 |
[구현/수학] 백준 13241 최소공배수 - 파이썬(Python) (0) | 2022.06.08 |
[자료구조/스택] 백준 1406 에디터 - 파이썬(Python) (0) | 2022.06.07 |
댓글