๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ ํ’€์ด/Greedy

[๋ฐฑ์ค€]13305๋ฒˆ: ์ฃผ์œ ์†Œ

by syLim___ 2023. 3. 16.
728x90

https://www.acmicpc.net/problem/13305

 

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

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

www.acmicpc.net


๊ดœํžˆ ์–ด๋ ต๊ฒŒ ์ƒ๊ฐํ•ด์„œ ์‹œ๊ฐ„๋งŒ ์žก์•„๋จน์€ ๋ฌธ์ œ!

๋‚ด๋ˆˆ์— ์ž๊พธ DP ๋ฌธ์ œ๋กœ ๋ณด์—ฌ์„œ ์•„์ด๋””์–ด๊ฐ€ ๋– ์˜ค๋ฅด์งˆ ์•Š์•˜๋‹ค ใ… vใ… 

 

์‰ฝ๊ฒŒ ์ƒ๊ฐํ•˜๋ฉด ์•„์ฃผ ์•„์ฃผ ์•„์ฃผ ๊ฐ„๋‹จํ•˜๋‹ค.

์ฐจ๋ฅผ ํƒ€๊ณ  ๊ฐ€๋‹ค๊ฐ€, ๊ธฐ๋ฆ„๊ฐ’์ด ์ €๋ ดํ•ด์ง€๋ฉด ๊ทธ ๋„์‹œ์— ๋“ค๋Ÿฌ์„œ ์ฃผ์œ ํ•œ๋‹ค. ๋!

 

import sys
input = sys.stdin.readline

n = int(input()) #๋„์‹œ์˜ ๊ฐœ์ˆ˜
path_len = list(map(int,input().split())) #๋„์‹œ ๊ฐ„ ๋„๋กœ์˜ ๊ธธ์ด
oil_price = list(map(int,input().split())) #๋„์‹œ๋ณ„ ๊ธฐ๋ฆ„๊ฐ’
path_len.insert(0,0);


cost=0 #์ด ๋น„์šฉ
cur_price=int(1e9)
cur_path=0
for i in range(n):

  #๊ฑฐ๋ฆฌ์ •๋ณด ๊ฐฑ์‹ 
  cur_path += path_len[i]

  #๊ธฐ๋ฆ„๊ฐ’์ด ์ €๋ ดํ•ด์ง€๋ฉด
  if cur_price > oil_price[i]:
    #์ง€๊ธˆ๊นŒ์ง€์˜ ๋น„์šฉํ•ฉ์„ ๋”ํ•ด์ค€๋‹ค
    cost += cur_path * cur_price

    #ํ˜„์žฌ ๊ธฐ๋ฆ„๊ฐ’ ์ •๋ณด๋ฅผ ๊ฐฑ์‹ 
    cur_price=oil_price[i]
    
    #๊ฑฐ๋ฆฌ์ •๋ณด๋„ ์ดˆ๊ธฐํ™”
    cur_path = 0

cost += cur_path * cur_price

print(cost)

 

728x90