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

๐Ÿ“š Algorithm/Baekjoon

[Baekjoon] ๋ฐฑ์ค€ 14719 '๋น—๋ฌผ' ๋ฌธ์ œํ’€์ด Python, ํŒŒ์ด์ฌ, ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ •๋ฆฌ

๐Ÿ“ 14719 ๋ฌธ์ œ 

2์ฐจ์› ์„ธ๊ณ„์— ๋ธ”๋ก์ด ์Œ“์—ฌ์žˆ๋‹ค. ๋น„๊ฐ€ ์˜ค๋ฉด ๋ธ”๋ก ์‚ฌ์ด์— ๋น—๋ฌผ์ด ๊ณ ์ธ๋‹ค.

๋น„๋Š” ์ถฉ๋ถ„ํžˆ ๋งŽ์ด ์˜จ๋‹ค. ๊ณ ์ด๋Š” ๋น—๋ฌผ์˜ ์ด๋Ÿ‰์€ ์–ผ๋งˆ์ผ๊นŒ?

 

 

์ž…๋ ฅ 

์ฒซ ๋ฒˆ์งธ ์ค„์—๋Š” 2์ฐจ์› ์„ธ๊ณ„์˜ ์„ธ๋กœ ๊ธธ์ด H๊ณผ 2์ฐจ์› ์„ธ๊ณ„์˜ ๊ฐ€๋กœ ๊ธธ์ด W๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. (1 ≤ H, W ≤ 500)

๋‘ ๋ฒˆ์งธ ์ค„์—๋Š” ๋ธ”๋ก์ด ์Œ“์ธ ๋†’์ด๋ฅผ ์˜๋ฏธํ•˜๋Š” 0์ด์ƒ H์ดํ•˜์˜ ์ •์ˆ˜๊ฐ€ 2์ฐจ์› ์„ธ๊ณ„์˜ ๋งจ ์™ผ์ชฝ ์œ„์น˜๋ถ€ํ„ฐ ์ฐจ๋ก€๋Œ€๋กœ W๊ฐœ ์ฃผ์–ด์ง„๋‹ค.

๋”ฐ๋ผ์„œ ๋ธ”๋ก ๋‚ด๋ถ€์˜ ๋นˆ ๊ณต๊ฐ„์ด ์ƒ๊ธธ ์ˆ˜ ์—†๋‹ค. ๋˜ 2์ฐจ์› ์„ธ๊ณ„์˜ ๋ฐ”๋‹ฅ์€ ํ•ญ์ƒ ๋ง‰ํ˜€์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜์—ฌ๋„ ์ข‹๋‹ค.

 

์ถœ๋ ฅ

2์ฐจ์› ์„ธ๊ณ„์—์„œ๋Š” ํ•œ ์นธ์˜ ์šฉ๋Ÿ‰์€ 1์ด๋‹ค. ๊ณ ์ด๋Š” ๋น—๋ฌผ์˜ ์ด๋Ÿ‰์„ ์ถœ๋ ฅํ•˜์—ฌ๋ผ.

๋น—๋ฌผ์ด ์ „ํ˜€ ๊ณ ์ด์ง€ ์•Š์„ ๊ฒฝ์šฐ 0์„ ์ถœ๋ ฅํ•˜์—ฌ๋ผ.

 

๐Ÿง ํ’€์ด

์ฒซ ๋ฒˆ์งธ ์นธ๊ณผ ๋งˆ์ง€๋ง‰ ์นธ์—๋Š” ๋น—๋ฌผ์ด ๊ณ ์ด์ง€ ์•Š๋Š”๋‹ค. ๋”ฐ๋ผ์„œ ๋ฐ˜๋ณต๋ฌธ์˜ ๋ฒ”์œ„๋ฅผ 1๋ถ€ํ„ฐ W-1๊นŒ์ง€๋กœ ์žก์•„์ค˜์•ผ ํ•œ๋‹ค.
๋น—๋ฌผ์ด ๊ณ ์ด๊ธฐ ์œ„ํ•ด์„œ๋Š” ์–‘์ชฝ(left, right)์œผ๋กœ ์ž์‹ ๋ณด๋‹ค ๋†’์€ ๋ธ”๋ก์ด ์žˆ์–ด์•ผ ํ•œ๋‹ค.
left์™€ right ์ค‘ ๋” ๋‚ฎ์€ ๋ธ”๋ก๊ณผ ์ž์‹ ์„ ๋บ€ ๊ฐ’์ด ๋ฌผ์ด ๊ณ ์ด๋Š” ์–‘์ด๋‹ค.

 

H, W = map(int, input().split())
num = list(map(int, input().split()))
res = 0
for i in range(1, W-1) :
    left = max(num[:i])
    right = max(num[i+1:])
    tmp = min(left, right)
    if num[i] < tmp : 
        res += tmp-num[i]
        
print(res)

 

 

728x90