๋ฌธ์
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๋ฒ์ ๊ฒฝ์ฐ๋ฅผ ๊ทธ๋ฆผ์ผ๋ก ํํํ๋ฉด ๋ค์๊ณผ ๊ฐ๋ค.
'์๊ณ ๋ฆฌ์ฆ > ๊ตฌํ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค 7490 ๐ฅ] 0 ๋ง๋ค๊ธฐ (0) | 2023.08.11 |
---|---|
[๋ฐฑ์ค 7682 ๐ฅ] ํฑํํ (0) | 2023.08.03 |
[๋ฐฑ์ค 8911 ๐ฅ] ๊ฑฐ๋ถ์ด (0) | 2023.07.31 |
[๋ฐฑ์ค 18428 ๐ฅ] ๊ฐ์ ํผํ๊ธฐ (0) | 2023.07.06 |
[๋ฐฑ์ค 3190 ๐ฅ] ๋ฑ (0) | 2023.07.06 |