[BOJ][๐ก5][๋ฐฑ์ค#14719] ๋น๋ฌผ
์์ฑ:    
์ ๋ฐ์ดํธ:
์นดํ ๊ณ ๋ฆฌ: BOJ Gold V
๋ฌธ์ ์ถ์ฒ
๋ฌธ์
2์ฐจ์ ์ธ๊ณ์ ๋ธ๋ก์ด ์์ฌ์๋ค. ๋น๊ฐ ์ค๋ฉด ๋ธ๋ก ์ฌ์ด์ ๋น๋ฌผ์ด ๊ณ ์ธ๋ค.
๋น๋ ์ถฉ๋ถํ ๋ง์ด ์จ๋ค. ๊ณ ์ด๋ ๋น๋ฌผ์ ์ด๋์ ์ผ๋ง์ผ๊น?
์ ๋ ฅ
์ฒซ ๋ฒ์งธ ์ค์๋ 2์ฐจ์ ์ธ๊ณ์ ์ธ๋ก ๊ธธ์ด H๊ณผ 2์ฐจ์ ์ธ๊ณ์ ๊ฐ๋ก ๊ธธ์ด W๊ฐ ์ฃผ์ด์ง๋ค. (1 โค H, W โค 500) ๋ ๋ฒ์งธ ์ค์๋ ๋ธ๋ก์ด ์์ธ ๋์ด๋ฅผ ์๋ฏธํ๋ 0์ด์ H์ดํ์ ์ ์๊ฐ 2์ฐจ์ ์ธ๊ณ์ ๋งจ ์ผ์ชฝ ์์น๋ถํฐ ์ฐจ๋ก๋๋ก W๊ฐ ์ฃผ์ด์ง๋ค. ๋ฐ๋ผ์ ๋ธ๋ก ๋ด๋ถ์ ๋น ๊ณต๊ฐ์ด ์๊ธธ ์ ์๋ค. ๋ 2์ฐจ์ ์ธ๊ณ์ ๋ฐ๋ฅ์ ํญ์ ๋งํ์๋ค๊ณ ๊ฐ์ ํ์ฌ๋ ์ข๋ค.
์ถ๋ ฅ
2์ฐจ์ ์ธ๊ณ์์๋ ํ ์นธ์ ์ฉ๋์ 1์ด๋ค. ๊ณ ์ด๋ ๋น๋ฌผ์ ์ด๋์ ์ถ๋ ฅํ์ฌ๋ผ. ๋น๋ฌผ์ด ์ ํ ๊ณ ์ด์ง ์์ ๊ฒฝ์ฐ 0์ ์ถ๋ ฅํ์ฌ๋ผ.
์์
์์ 1
์ ๋ ฅ
4 4
3 0 1 4
์ถ๋ ฅ
5
์์ 2
์ ๋ ฅ
4 8
3 1 2 3 4 1 1 2
์ถ๋ ฅ
5
์์ 3
์ ๋ ฅ
3 5
0 0 0 2 0
์ถ๋ ฅ
0
My Sol
import sys
input = sys.stdin.readline
H, W = map(int, input().split())
heights = list(map(int, input().split()))
# ์ต๋ ๋์ด ๊ณ์ฐ
max_h = max(heights)
# ์ต๋ ๋์ด ๊ณ์ฐ
# ์์์๋ถํฐ ์ต๋ ๋์ด๊น์ง ๋์
ssum = 0
si = 0
cur_h = 0
while heights[si] < max_h:
cur_h = max(cur_h, heights[si])
ssum += cur_h
si += 1
# ๋ค์์๋ถํฐ ์ต๋ ๋์ด๊น์ง ๋์
ei = W-1
cur_h = 0
while heights[ei] < max_h:
cur_h = max(cur_h, heights[ei])
ssum += cur_h
ei -= 1
# ์ต๋๋์ด๊ตฌ๊ฐ ๋์
ssum += (ei-si+1)*max_h
print(ssum - sum(heights))
์ ์ฒด ๊ณต๊ฐ์ 3๋ฑ๋ถํ์ฌ ๋น๊ฐ ๊ณ ์์ ๊ฒฝ์ฐ์ ๋ฉด์ ์ ๊ณ์ฐํ๊ณ , ์ด๋ฅผ ์ค์ ๋ธ๋ก์ ๋ฉด์ ์ผ๋ก ๋นผ๋ฉด ๋น์ ๋ฉด์ ๋ง ๊ตฌํ ์ ์๋ค.
๋ธ๋ก์ ์ต๋ ๋์ด๋ฅผ ๊ตฌํ๊ณ , ์์์๋ถํฐ ๋ธ๋ก์ ์ต๋๋์ด์ ๋ค๋ค๋ฅผ ๋๊น์ง ํ์ฌ ๋์ด์ ์ด์ ์ต๋ ๋์ด๋ฅผ ๋น๊ตํ์ฌ ๋ ํฐ ๊ฐ์ ๊ณ์ ๋์ ํ๋ฉฐ index๋ฅผ ๋์ฌ๊ฐ๋ค. ๋ค์์๋ ๋ง์ฐฌ๊ฐ์ง์ด๋ค.
๊ทธ๋ ๋ค๋ฉด ๋ index ์ฌ์ด์ ๊ณต๊ฐ์ ์ต๋๋์ด๊ฐ ์๋ ๊ฒ์ด๊ณ , ์์ชฝ์์ ์ต๋ ๋์ด์ ๋๋ฌํ๋ค๋ฉด, ๊ทธ ์ฌ์ด์ ๊ณต๊ฐ์ ๋ชจ๋ ์ต๋๋์ด์ ์ธ๋ฑ์ค ์ฐจ์ ๊ณฑ์ผ๋ก ๋ณด์์ผ ํ๊ธฐ ๋๋ฌธ์ ๋์ค์ ๋ํด์ค๋ค.
๊ฒฐ๊ณผ
๋ง์์ต๋๋ค!!
๋ชจ๋ฒ๋ต์
h, w = map(int, input().split())
world = list(map(int, input().split()))
ans = 0
for i in range(1, w - 1):
left_max = max(world[:i])
right_max = max(world[i+1:])
compare = min(left_max, right_max)
if world[i] < compare:
ans += compare - world[i]
print(ans)
ํ์ด์ ๊ธธ์ด๊ฐ ์งง์ ์ฝ๋๋ฅผ ๋ฐ๊ฒฌํด์ ๋ถ์ํด๋ณด๋ ค ํ๋ค. ๊ฐ ์๋ฆฌ๋ง๋ค ํด๋น ์ง์ ์ ๊ธฐ์ ์ผ๋ก ์ข์ฐ์ ์ต๋ ๋์ด ์ค ๋ฎ์ ๋์ด๋ฅผ ๊ณ์ฐํ๊ณ , ํ์ฌ ์ง์ ์ ๋์ด๊ฐ ์ข์ฐ ์ต๋ ๋์ด๋ณด๋ค ๋ฎ๋ค๋ฉด ์ข์ฐ ์ต๋ ๋์ด์ ํ์ฌ ๋์ด์ ์ฐจ๋งํผ ๋น๊ฐ ๊ณ ์ด๋ ๊ฒ์ด๋ฏ๋ก ans์ ๋ํด์ค๋ค.
์ด๋ ๊ฒ๋ ํ ์ ์๊ฒ ์ผ๋ W๊ฐ ์ปค์ง๋ฉด ๋งค๋ฒ max๋ฅผ ๊ตฌํ๋ ๋ก์ง ์์ฒด๊ฐ ์ค๋ ๊ฑธ๋ฆฌ๊ณ , ์ด๋ฌํ ๋ฐ๋ณต์ด ๋ ๋ง์ด ๋ฐ๋ณต๋์ด์ผ ํ๋ฏ๋ก ์ฐ์ฐ์๊ฐ์ด ๋ชน์ ๋์์ง ๊ฒ์ด๋ค.
์ข์ ํ์ด๋ผ๊ณ ๋ณด๊ธฐ์๋ ์์ฝ๊ณ ์งง๊ฒ ์ ํ์ด๋ธ ์ฝ๋์ธ ๊ฒ ๊ฐ๋ค.
๋๊ธ๋จ๊ธฐ๊ธฐ