Algorithm/BOJ
[Kotlin] 백준 13305 : 주유소
개발하는 곰돌이
2023. 7. 27. 10:49
문제 링크
문제 해설
그리디 입문 문제.
문제의 내용 중에 기름통의 크기가 무제한이라는 언급이 있다. 기름을 무한정 축적할 수 있기 때문에 문제를 쉽게 해결할 수 있다.
마지막 도시까지 이동하는 최소 비용을 구하기 위해서는 다음 도시로 이동해가면서 현재 도시까지의 가장 저렴한 기름값과 남은 거리를 계산하여 더해주면 된다.
각 도시마다 주유소가 있다고 되어있지만 마지막 도시가 곧 도착지점이기 때문에 계산 과정에 포함되지 않아서 굳이 입력받을 필요는 없다.
Code
import java.util.*
fun main() = with(System.`in`.bufferedReader()) {
val n = readLine().toInt() - 1
val distance = StringTokenizer(readLine()).run { LongArray(n) { nextToken().toLong() } }
val price = StringTokenizer(readLine()).run { LongArray(n) { nextToken().toLong() } }
var minPrice = price[0]
var total = 0L
for (i in 0 until n) {
minPrice = minOf(minPrice, price[i])
total += minPrice * distance[i]
}
println(total)
}