์ฃผ์ ์ ์ต๋ ๊ฐ์๋ฅผ ์๊ฐํ๋ฉด ์์ ํ์์ ๋ถ๊ฐ๋ฅํ๊ณ , ๊ทธ๋์ ์ฒ์์ ๋ค์์ ์์ผ๋ก ์ค๋ฉด์ ์ด์ ์ ๊ฐ์ ์ ์ฅํด๋๋ dp ๋ฐฉ์์ ์๊ฐํ์ง๋ง ๋๋ฌด ๋ณต์กํด์ก๋ค.
๋ค์ ์์์ ๋ค๋ก ๊ฐ๋ ๊ฑธ ์๊ฐํ๋ ๊ทธ๋ฅ ์ด์ ์ ์ฃผ์ ์ ๋ฆฌํฐ ๊ฐ๊ณผ ํ์ฌ์ ์ฃผ์ ์ ๋ฆฌํฐ๊ฐ์ ๋น๊ตํด์ ์ด์ ๊ฐ์ด ๋ ์์ผ๋ฉด ๋ ์์ ๊ฑธ๋ก ์
๋ฐ์ดํธํ๊ณ , ํ์ฌ ์ฃผ์ ์ ๋ฆฌํฐ๊ฐ์ด ๋ ์์ผ๋ฉด ๊ทธ๋๋ก ๊ฐ๋ ์์ผ๋ก ๊ณ์ฐํ๋ฉด ๋๋ ๊ฒ ๊ฐ์๋ค. ์ฃผ์ ์ ๋ฆฌํฐ๊ฐ์ ์
๋ฐ์ดํธํ๋ฉด์ ๋์์ ์ด๋ํด์ผ ํ๋ ๊ฑฐ๋ฆฌ * ๋ฆฌํฐ ๊ฐ์ ์ต์ข
๊ฐ๊ฒฉ์ธ cost
์ ์ถ๊ฐํด์ฃผ๋ฉด ๋๋ค.
// ์ฃผ์ ์
package Baekjoon.Silver;
import java.io.*;
import java.util.*;
public class baekjoon_13305 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
StringTokenizer st = new StringTokenizer(br.readLine());
long[] DISTANCE = new long[N-1];
for (int i = 0; i < N-1; i++) {
DISTANCE[i] = Long.parseLong(st.nextToken());
}
st = new StringTokenizer(br.readLine());
long[] LITER = new long[N];
for (int i = 0; i < N; i++) {
LITER[i] = Long.parseLong(st.nextToken());
}
long cost = 0;
for (int i = 0; i < N-1; i++) {
cost += LITER[i] * DISTANCE[i];
if (LITER[i+1] > LITER[i]) {
LITER[i+1] = LITER[i];
}
}
System.out.println(cost);
}
}`