https://www.acmicpc.net/problem/13305
1.설명
제가 생각한 방법은 n개의 도시가 할때 첫번쨰 도시에서 두번쨰 도시로 갈때 최소비용으로 채워야하므로 cost값을 길이[0]*도시가격[0]으로 시작하고, 그 다음 price중 최소값이 존재할때 거기서 기름을 다 채우는 방법으로 계산했습니다. 문제를 처음 봤을떄 BFS(best first search)를 활용하여 구하려고했으나. 그것보다 쉬운 방법이 있을꺼같아서 이방법으로 풀어봤습니다.
코드 자체에서 봐야할껀 for문 정도 있을꺼같아요! for문 안에서 price[i]이 첫번쨰 도시에서 cost값을 더하고 나서 만약 그 다음 도시에서 price가 더 낮을 경우, 값을 반환해 cost값에 더하는 방식으로 계산했습니다!
2. 코드
N=int(input())
length=list(map(int,input().split()))
price=list(map(int,input().split()))
cost=0
m=price[0]
for i in range(N-1):
if price[i]<m:
m=price[i]
cost+=m*length[i]
print(cost)
'코딩test공부 > 백준python' 카테고리의 다른 글
2512.예산 (0) | 2024.01.11 |
---|---|
20920.영단어 암기는 괴로워 (1) | 2024.01.10 |
9017.크로스 컨트리 (1) | 2024.01.08 |
1244.스위치 끄고 켜기 (2) | 2024.01.04 |
8979.올림픽 (1) | 2024.01.03 |