문제 링크
13305번: 주유소
표준 입력으로 다음 정보가 주어진다. 첫 번째 줄에는 도시의 개수를 나타내는 정수 N(2 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 인접한 두 도시를 연결하는 도로의 길이가 제일 왼쪽 도로부터 N-1
www.acmicpc.net
문제 해설
그리디 입문 문제.
문제의 내용 중에 기름통의 크기가 무제한이라는 언급이 있다. 기름을 무한정 축적할 수 있기 때문에 문제를 쉽게 해결할 수 있다.
마지막 도시까지 이동하는 최소 비용을 구하기 위해서는 다음 도시로 이동해가면서 현재 도시까지의 가장 저렴한 기름값과 남은 거리를 계산하여 더해주면 된다.
각 도시마다 주유소가 있다고 되어있지만 마지막 도시가 곧 도착지점이기 때문에 계산 과정에 포함되지 않아서 굳이 입력받을 필요는 없다.
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)
}
'Algorithm > BOJ' 카테고리의 다른 글
[Kotlin] 백준 1644 : 소수의 연속합 (0) | 2023.08.11 |
---|---|
[Kotlin] 백준 12789 : 도키도키 간식드리미 (0) | 2023.08.09 |
[Kotlin] 백준 1021 : 회전하는 큐 (3) | 2023.07.11 |
[Kotlin] 백준 2485 : 가로수 (0) | 2023.07.05 |
[Kotlin] 백준 1002 : 터렛 (0) | 2023.06.22 |
댓글