์•Œ๊ณ ๋ฆฌ์ฆ˜/๊ตฌํ˜„

[๋ฐฑ์ค€ 14719 ๐Ÿฅ‡] ๋น—๋ฌผ

1eehyunji 2023. 8. 1. 22:55

๋ฌธ์ œ

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

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

์ž…๋ ฅ

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

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

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

์ถœ๋ ฅ

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

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

๋ฌธ์ œํ’€์ด

import sys

h,w = map(int,sys.stdin.readline().split(' '))
blocks=list(map(int, sys.stdin.readline().split(' ')))

total=0
for i in range(1,w-1):
    left_max=max(blocks[:i])
    right_max=max(blocks[i+1:])
    add_value=min(left_max, right_max)-blocks[i]
    if add_value>0:
        total+=add_value

print(total)

์•„์ด๋””์–ด๋งŒ ๋– ์˜ฌ๋ฆฌ๋ฉด ๊ฐ„๋‹จํ•œ ๋ฌธ์ œ๋‹ค!

1๋ฒˆ๋ถ€ํ„ฐ w-1๋ฒˆ ์ธ๋ฑ์Šค๊นŒ์ง€ ํƒ์ƒ‰ํ•˜๋ฉด์„œ ํ˜„์žฌ ์œ„์น˜์—์„œ ์™ผ์ชฝ ๋ธ”๋ก๋“ค์„ ๊ธฐ์ค€์œผ๋กœ ๊ฐ€์žฅ ํฐ ๊ฐ’์„ left_max์— ์ €์žฅํ•˜๊ณ , ์˜ค๋ฅธ์ชฝ ๋ธ”๋ก๋“ค์„ ๊ธฐ์ค€์œผ๋กœ ๊ฐ€์žฅ ํฐ ๊ฐ’์„ right_max์— ์ €์žฅํ•œ๋‹ค. 

๊ทธ๋ฆฌ๊ณ  left_max์™€ right_max ์ค‘ ๋” ์ž‘์€ ๊ฐ’์—์„œ ํ˜„์žฌ ์œ„์น˜์˜ ๋ธ”๋ก ํฌ๊ธฐ๋ฅผ ๋นผ์„œ add_value์— ์ €์žฅํ•˜๊ณ , ๋งŒ์•ฝ add_value๊ฐ€ 0๋ณด๋‹ค ํฌ๋‹ค๋ฉด ๊ณ ์ด๋Š” ๋ฌผ์ด ์žˆ๋‹ค๋Š” ๋œป์ด๋ฏ€๋กœ ๊ณ ์ด๋Š” ๋น—๋ฌผ์˜ ์ด๋Ÿ‰(total)์— ๋”ํ•œ๋‹ค.

 

์ด ํ’€์ด๋Š” ๊ทธ๋ฆผ์œผ๋กœ ์ดํ•ดํ•˜๋ฉด ๋” ์‰ฝ๋‹ค.

๋ฌธ์ œ์—์„œ ์ œ๊ณตํ•œ ์˜ˆ์ œ2๋ฒˆ์˜ ๊ฒฝ์šฐ๋ฅผ ๊ทธ๋ฆผ์œผ๋กœ ํ‘œํ˜„ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.