728x90
- https://www.acmicpc.net/problem/13305
풀이
1. 각 입력을 Price, Distance 배열에 저장한다.
2. newPrice field 를 선언하고 Price[0] 값을 저장 한다.
3. Distance 배열 만큼 검색을 하는데 이때 newPrice 값과 현재 index 의 Price 값을 비교하여 작은 값으로 계산을 한다.
4. 3번에서 newPrice 보다 작은 값이 들어 올 경우 newPrice 를 작은 값으로 업데이트하고 다음 검색을 수행 한다.
- 주의 : 입력이 크므로 Long Type 으로 거리/가격의 정보를 저장 한다.
코드
import java.io.*
fun main(args: Array<String>) {
val br = BufferedReader(InputStreamReader(System.`in`))
val bw = BufferedWriter(OutputStreamWriter(System.out))
val N = br.readLine().toInt()
val D = br.readLine().split(" ").map { it.toLong() }
val P = br.readLine().split(" ").map { it.toLong() }
// 비교하기 위한 Price 정보에 처음 가격 값을 저장한다.
var nextP = P[0]
var sum = 0L
for (i in D.indices) {
// 현재 가격 정보와 다음 가격 정보를 비교한다.
if (nextP > P[i]) {
nextP = P[i]
}
sum += nextP * D[i]
}
bw.write("$sum\n")
bw.flush()
bw.close()
br.close()
}
728x90
'알고리즘' 카테고리의 다른 글
[백준][KOTLIN] 2630 색종이 만들기 (0) | 2022.01.03 |
---|---|
분할 정복(Divide & Conquer) (0) | 2022.01.03 |
[백준][KOTLIN] 1541 잃어버린 괄호 (0) | 2021.12.24 |
[백준][KOTLIN] 11399 ATM (0) | 2021.12.24 |
[백준][KOTLIN] 1931 회의실 배정 (0) | 2021.12.24 |