반응형
https://www.acmicpc.net/problem/13305
13305번: 주유소
표준 입력으로 다음 정보가 주어진다. 첫 번째 줄에는 도시의 개수를 나타내는 정수 N(2 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 인접한 두 도시를 연결하는 도로의 길이가 제일 왼쪽 도로부터 N-1
www.acmicpc.net
내 코드
import sys
input = sys.stdin.readline
city = int(input())
road =[0]+ list(map(int, input().split()))
price = [0]+list(map(int, input().split()))
std = price[1]
ans = 0
for i in range(1, city):
if price[i] < std:
std = price[i]
ans += road[i]*std
print(ans)
코드 리뷰
처음에 코드를 설계할 때는 dp인가 싶어서 dp 배열을 만들어서 max값을 출력했다.
하지만 그럴 필요도 없이 가장 저렴하게 오일을 구매할 수 있는 곳을 찾아서 오일 최저값만 갱신해주면 된다.
std = price[1]
나는 std라는 변수에 최저 오일값을 저장하였다.
for i in range(1, city):
if price[i] < std:
std = price[i]
ans += road[i]*std
그래서 모든 주유소를 둘러보면서, 최저값이 있으면 갱신해준다.
방문하는 족족 최저값에 대입해서 도로의 길이만큼 곱해주면 답이다.
간단한 문제였다.
반응형
'코딩테스트 대비 > 백준(BOJ)' 카테고리의 다른 글
| [Python][백준/BOJ] 64655번 : 카약과 강풍 (0) | 2023.08.06 |
|---|---|
| [Python][백준/BOJ] 2212번 : 센서 (0) | 2023.08.06 |
| [Python][백준/BOJ] 9251번 : LCS (0) | 2023.08.06 |
| [Python][백준/BOJ] 9205번 : 맥주 마시면서 걸어가기 (0) | 2023.08.05 |
| [Python][백준/BOJ] 13549번 : 숨바꼭질 3 (0) | 2023.08.04 |