๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

Algorithm/Baekjoon

๋ฐฑ์ค€ 13305 ์ฃผ์œ ์†Œ

๐Ÿ’ป Q

 

13305๋ฒˆ: ์ฃผ์œ ์†Œ

ํ‘œ์ค€ ์ž…๋ ฅ์œผ๋กœ ๋‹ค์Œ ์ •๋ณด๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ์ฒซ ๋ฒˆ์งธ ์ค„์—๋Š” ๋„์‹œ์˜ ๊ฐœ์ˆ˜๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์ •์ˆ˜ N(2 ≤ N ≤ 100,000)์ด ์ฃผ์–ด์ง„๋‹ค. ๋‹ค์Œ ์ค„์—๋Š” ์ธ์ ‘ํ•œ ๋‘ ๋„์‹œ๋ฅผ ์—ฐ๊ฒฐํ•˜๋Š” ๋„๋กœ์˜ ๊ธธ์ด๊ฐ€ ์ œ์ผ ์™ผ์ชฝ ๋„๋กœ๋ถ€ํ„ฐ N-1

www.acmicpc.net

 

 

๐Ÿ’กA

์•ž์œผ๋กœ ์ด๋™ํ•˜๋ฉด์„œ ์ฃผ์œ  ๋น„์šฉ์ด ๋” ์‹ผ ์ฃผ์œ ์†Œ์—์„œ ์•ž์˜ ๊ฑฐ๋ฆฌ๋งŒํผ์”ฉ ๋„ฃ์–ด์ฃผ๋ฉด ๋œ๋‹ค.
์ฒ˜์Œ์— ๊ฑฐ๋ฆฌ์™€ ๋น„์šฉ ๊ฐ’์˜ ํƒ€์ž…์„ intํ˜•์œผ๋กœ ํ–ˆ์„๋•Œ๋Š” ์„œ๋ธŒํƒœ์Šคํฌ 3๋ฒˆ์— ๊ฑธ๋ ค 58์ ์ด ๋‚˜์˜จ๋‹ค.
์ œ์ผ ์™ผ์ชฝ ๋„์‹œ๋ถ€ํ„ฐ ์ œ์ผ ์˜ค๋ฅธ์ชฝ ๋„์‹œ๊นŒ์ง€์˜ ๊ฑฐ๋ฆฌ๋Š” 1์ด์ƒ 1,000,000,000 ์ดํ•˜์˜ ์ž์—ฐ์ˆ˜์ด๋‹ค. ๋ฆฌํ„ฐ๋‹น ๊ฐ€๊ฒฉ์€ 1 ์ด์ƒ 1,000,000,000 ์ดํ•˜์˜ ์ž์—ฐ์ˆ˜์ด๋‹ค. ๋ผ๋Š” ์กฐ๊ฑด ๋•Œ๋ฌธ.
long์œผ๋กœ ๋ฐ”๊ฟ”์„œ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค.

import java.io.*;
import java.util.StringTokenizer;

public class Main {
    public static void main(String[] args) throws Exception {
      BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
      int n = Integer.parseInt(br.readLine());
      long[] dist = new long[n - 1];  //๊ฑฐ๋ฆฌ
      long[] cost = new long[n];  //์ฃผ์œ  ๋น„์šฉ

      //๊ฑฐ๋ฆฌ ์ €์žฅ
      StringTokenizer st = new StringTokenizer(br.readLine(), " ");
      for(int i=0; i<n-1; i++) 
      dist[i] = Long.parseLong(st.nextToken());

      //๋น„์šฉ ์ €์žฅ
      st = new StringTokenizer(br.readLine(), " ");
      for(int i=0; i<n; i++)
      cost[i] = Long.parseLong(st.nextToken());

      long sum = 0;
      long minCost = cost[0];  

      for(int i=0; i<n-1; i++) { 
      //์ด์ „ ์ฃผ์œ ์†Œ๊ฐ€ ๋” ์Œ€ ๊ฒฝ์šฐ minCost ๊ฐฑ์‹ 
          if(cost[i] < minCost)  
            minCost = cost[i];

          sum += (minCost * dist[i]);  //๋น„์šฉ ์ดํ•ฉ
        }
      System.out.println(sum);
    }
}