๐Ÿค–/๋ฐฑ์ค€

๋ฐฑ์ค€ 13305: ์ฃผ์œ ์†Œ (Python)

sssbin 2022. 1. 21. 19:07


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

 

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

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

www.acmicpc.net


๋ฐฑ์ค€ ์˜ค๋žœ๋งŒ

์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ธฐ๋ง๊ณ ์‚ฌ ๋•Œ ๋‚˜์™”๋˜ ๋ฌธ์ œ๋ผ์„œ ๋ฐ˜๊ฐ€์› ๋‹ค.
ํ•˜์ง€๋งŒ ๊ธฐ์–ต ์•ˆ ๋‚จ. ์‹œํ—˜ ๋•Œ๋„ ์‹œ๊ฐ„์ด ์—†๊ธฐ๋„ ํ•ด์„œ ๊ฑ ๋Œ€์ถฉ ํœ˜๊ฐˆ๊ฒจ ์ผ๋˜ ๊ธฐ์–ต.
์ข€๋” ๋ฏธ๋ฆฌ ํ’€์–ด๋ณผ๊ฑธ ์กฐ๊ธˆ ์–ต์šธํ–ˆ์Œ,,,

์ฒ˜์Œ์— ๊ฝค ๋ณต์žกํ•˜๊ฒŒ ์ƒ๊ฐํ–ˆ๋‹ค.
๊ทผ๋ฐ ํ’€๋ฉด์„œ๋Š” ๋ฌธ์ œ๊ฐ€ ๊ฐ„๋‹จํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ์Œ.

n = int(input()) 
length = list(map(int, input().split())) 
price = list(map(int, input().split())) 

del price[n-1] 
n -= 1 
cost = 0 

while n > 0:
	len_sum = 0 
    minimum = min(price) 
    idx = price.index(minimum) 
    
    for i in range(idx, n): 
    	len_sum += length.pop() 
        del price[-1] 
        
    cost += len_sum * minimum 
    n = idx 
    
print(cost)

 


ํ‹€๋ฆผใ…‹
๋ถ€๋ถ„์ ์ˆ˜ ๋ฐ›์•˜๋‹ค. ๊ธฐ๋ถ„ ๋‚˜๋น ์š”

์›์ธ์€ ์‹œ๊ฐ„์ดˆ๊ณผยทยทยท
๋จธ๋ฆฌ ๋œฏ๋Š” ์™€์ค‘์— ํƒœ์Šคํฌ๋ฅผ ์ผ์ผ์ด ๋‚˜๋ˆ„์ง€ ์•Š๊ณ  ํ•œ๋ฒˆ์— ๋ฐ˜๋ณต๋ฌธ ๋Œ๋ฉด์„œ ๊ณ„์‚ฐํ•ด๋„ ๋œ๋‹ค๋Š” ๊ฒƒ์„ ๊นจ๋‹ซ๊ณ  ์šฐ์™• ํ–ˆ๋‹ค ใ…‹ใ…‹ใ…‹

n = int(input())
length = list(map(int, input().split()))
price = list(map(int, input().split()))

minimum = price[0]
cost = 0

for i in range(n-1):
    if minimum > price[i]:
        minimum = price[i]

    cost += minimum * length[i]

print(cost)

 


๋ถ„๋ฐœํ•˜์ž,,,,,,,