๐กsolutions )
๐ฌ ๊ธฐ๋ณธ์ ์ธ ์๋ฎฌ๋ ์ด์ ๋ฌธ์
๐ฌ for๋ฐ๋ชฉ๋ฌธ์ ๋๋ฉฐ ๊ฐ์ฅ ๋์ ๋ธ๋ก์ ๋์ด(max_height)์ ์ธ๋ฑ์ค(max_index)๋ฅผ ์ ์ฅํด๋๊ณ , ๋ธ๋ก๋ค์ ์ ์ฒด ๋์ด์ ํฉ์ ์ ์ฅํ๋ค(block_sum)
๐ฌ ์ผ์ชฝ ๋์์๋ถํฐ max_index๊น์ง(์ข์์ ์ฐ→) ๊ทธ๋ฆฌ๊ณ ์ค๋ฅธ์ชฝ ๋๋ถํฐ max_index๊น์ง (์ฐ์์ ์ข←) ํ์ํ์ฌ ๋ธ๋ก์ ๋์ด๋ฅผ ๋น๊ตํ์ฌ ๊ฐ์ฅ ๋์ ๋ธ๋ก์ ์์น๊ฐ(tmp)์ total์ ๋ํด์ค๋ค.
๐ฌ ๋ง์ง๋ง์ total๊ฐ์์ ์ ์ฒด ๋ธ๋ก๋ค์ ๋์ด์ ํฉ์ธ block_sum์ ๋นผ์ฃผ๋ฉด ๊ณ ์ด๋ ๋น๋ฌผ์ ์ด๋์ ๊ตฌํ ์ ์๋ค.
๐จ๐ปcode )
import sys
input = sys.stdin.readline
h, w = map(int, input().split())
block = list(map(int, input().rstrip().split(' ')))
max_height, max_index, block_sum = 0, 0, 0
for i in range(w):
block_sum += block[i]
if max_height < block[i]:
max_height =block[i]
max_index = i
total = 0
tmp = 0
# ์ผ์ชฝ์์ ๊ฐ์ฅ ๋์ ๋ธ๋ก๊น์ง
for i in range(max_index + 1):
if tmp <block[i]:
tmp =block[i]
total += tmp
tmp = 0
# ์ค๋ฅธ์ชฝ์์ ๊ฐ์ฅ ๋์ ๋ถ๋ก๊น์ง(๋์ ๋ธ๋ก์ ๋ฒ์์์ ์ ์ธ)
for i in range(w-1, max_index, -1):
if tmp < block[i]:
tmp =block[i]
total += tmp
print(total-block_sum)
๐description )
๋ฌธ์
2์ฐจ์ ์ธ๊ณ์ ๋ธ๋ก์ด ์์ฌ์๋ค. ๋น๊ฐ ์ค๋ฉด ๋ธ๋ก ์ฌ์ด์ ๋น๋ฌผ์ด ๊ณ ์ธ๋ค.
๋น๋ ์ถฉ๋ถํ ๋ง์ด ์จ๋ค. ๊ณ ์ด๋ ๋น๋ฌผ์ ์ด๋์ ์ผ๋ง์ผ๊น?
์ ๋ ฅ
์ฒซ ๋ฒ์งธ ์ค์๋ 2์ฐจ์ ์ธ๊ณ์ ์ธ๋ก ๊ธธ์ด H๊ณผ 2์ฐจ์ ์ธ๊ณ์ ๊ฐ๋ก ๊ธธ์ด W๊ฐ ์ฃผ์ด์ง๋ค. (1 ≤ H, W ≤ 500)
๋ ๋ฒ์งธ ์ค์๋ ๋ธ๋ก์ด ์์ธ ๋์ด๋ฅผ ์๋ฏธํ๋ 0์ด์ H์ดํ์ ์ ์๊ฐ 2์ฐจ์ ์ธ๊ณ์ ๋งจ ์ผ์ชฝ ์์น๋ถํฐ ์ฐจ๋ก๋๋ก W๊ฐ ์ฃผ์ด์ง๋ค.
๋ฐ๋ผ์ ๋ธ๋ก ๋ด๋ถ์ ๋น ๊ณต๊ฐ์ด ์๊ธธ ์ ์๋ค. ๋ 2์ฐจ์ ์ธ๊ณ์ ๋ฐ๋ฅ์ ํญ์ ๋งํ์๋ค๊ณ ๊ฐ์ ํ์ฌ๋ ์ข๋ค.
์ถ๋ ฅ
2์ฐจ์ ์ธ๊ณ์์๋ ํ ์นธ์ ์ฉ๋์ 1์ด๋ค. ๊ณ ์ด๋ ๋น๋ฌผ์ ์ด๋์ ์ถ๋ ฅํ์ฌ๋ผ.
๋น๋ฌผ์ด ์ ํ ๊ณ ์ด์ง ์์ ๊ฒฝ์ฐ 0์ ์ถ๋ ฅํ์ฌ๋ผ.