BOJ 14719

๐Ÿ•ต๏ธ‍โ™€๏ธ ๋ฌธ์ œ


2์ฐจ์› ์„ธ๊ณ„์— ๋ธ”๋ก์ด ์Œ“์—ฌ์žˆ๋‹ค. ๋น„๊ฐ€ ์˜ค๋ฉด ๋ธ”๋ก ์‚ฌ์ด์— ๋น—๋ฌผ์ด ๊ณ ์ธ๋‹ค.๋น„๋Š” ์ถฉ๋ถ„ํžˆ ๋งŽ์ด ์˜จ๋‹ค. ๊ณ ์ด๋Š” ๋น—๋ฌผ์˜ ์ด๋Ÿ‰์€ ์–ผ๋งˆ์ผ๊นŒ?

 

 

๐Ÿ’ก ์ž…๋ ฅ


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

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

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

 

 

 

 

๐Ÿ“Œ ์ถœ๋ ฅ


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

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

 

 

๐Ÿ™‹‍โ™€๏ธ ํ’€์–ด๋ณด์ž~


๋น—๋ฌผ์ด ๊ณ ์ด๊ธฐ ์œ„ํ•ด์„œ๋Š” ๊ธฐ๋‘ฅ์ด ํ•„์š”ํ•˜๋‹ค. 

์ด ๊ธฐ๋‘ฅ์ด ์–ด๋–ป๊ฒŒ ์ƒ๊ธฐ๋Š”์ง€ ์ƒ๊ฐํ•ด๋ณด์ž.

 

์œ„ ์‚ฌ์ง„๊ณผ ๊ฐ™์ด max์ธ 4๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ขŒ์šฐ์˜ ๊ฐ€์žฅ ํฐ ๊ฐ’์ธ 3๊ณผ 2์˜ ๊ฐ’์ด ์ค‘์š”ํ•จ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

์™ผ์ชฝ์€ 3์„ ๊ธฐ์ค€์œผ๋กœ ๋น—๋ฌผ์ด ๋ฐ›์•„์ง€๊ณ  ์˜ค๋ฅธ์ชฝ์€ 2๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋น—๋ฌผ์ด ๋ฐ›์•„์ง€๊ธฐ ๋•Œ๋ฌธ~

 

๋” ์ž์„ธํ•˜๊ฒŒ ๋ณด์ž๋ฉด..

๊ฐ ์ž๋ฆฌ๋ฅผ i๋กœ ๋ณด๊ณ  0๋ถ€ํ„ฐ 7๊นŒ์ง€ ๋ฒˆํ˜ธ๋ฅผ ๋งค๊ฒผ์„ ๋•Œ 2๋ฒˆ์งธ ๋ธ”๋Ÿญ์„ ๋ณด์ž.

i=2๋ฒˆ์งธ ๋ธ”๋Ÿญ์€ 2๊ฐœ๋กœ ์ด ๋ธ”๋Ÿญ์„ ๊ธฐ์ค€์œผ๋กœ ๋น—๋ฌผ ๊ธฐ๋‘ฅ์ด ๋˜์–ด์ค„ ์ขŒ์šฐ์˜ max ์ˆซ์ž๋ฅผ ์‚ดํŽด๋ณด๋ฉด 3๊ณผ 4์ž„์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

์—ฌ๊ธฐ์„œ max์ค‘ ์ž‘์€ ์ˆ˜๊ฐ€ ๊ธฐ์ค€์ด ๋˜๊ธฐ ๋•Œ๋ฌธ์— 3์ด๋ผ๋Š” ์ˆซ์ž๋ฅผ ์ด์šฉํ•ด์ฃผ๊ฒŒ ๋œ๋‹ค.

 

 

์ •๋ฆฌํ•˜์ž๋ฉด~

  • ์–‘์ชฝ์— ๋” ๋†’์€ ๋ธ”๋Ÿญ์ด ์กด์žฌํ•˜๋ฉด ๋น—๋ฌผ์ด ๊ณ ์ž„
  • ๋ฐ˜๋ณต๋ฌธ์„ ๋Œ๋ฉด์„œ ํ˜„์žฌ์˜ ๋ธ”๋Ÿญ ๊ธฐ์ค€ left_max์™€ right_max๋ฅผ ๊ตฌํ•˜๊ณ  ์ด ๋‘ ๊ฐ’์ค‘ ์ž‘์€ ์ˆ˜๋ฅผ ๊ตฌํ•จ
    • ๊ตฌํ•ด์ง„ ์ˆ˜ - ํ˜„์žฌ ๋ธ”๋Ÿญ์˜ ์ˆ˜ ๊ฐ€ ๋น—๋ฌผ์ด ๋‹ด๊ธธ ์นธ์ˆ˜๋‹ค.
    • ์ฒซ ๋ธ”๋Ÿญ๊ณผ ๋งˆ์ง€๋ง‰ ๋ธ”๋Ÿญ์€ ๋ณผํ•„์š” ์—†๋‹ค. (๊ทธ๋ฆผ๊ณผ ๊ฐ™์€ ์˜ˆ์‹œ๋ฅผ ์ด์šฉํ•˜์ž๋ฉด, i=0์ผ ๋•Œ์™€ i=7์ผ ๋•Œ)

 

# ๋น—๋ฌผ

# ์ž…๋ ฅ์„ ๋ฐ›์•„ ์ค€๋‹ค.
H, W = map(int, input().split())
block = list(map(int, input().split()))
answer = 0

# ๋งจ ์•ž๋’ค๋ฅผ ์ œ์™ธํ•œ for๋ฌธ์„ ๋Œ๋ฉด์„œ ์™ผ์ชฝ๊ณผ ์˜ค๋ฅธ์ชฝ์—์„œ ์ตœ๋Œ“๊ฐ’์„ ์ฐพ๋Š”๋‹ค.
for i in range(1, W-1):
    left_max = max(block[:i]) # ํ˜„์žฌ ๋ธ”๋Ÿญ์„ ๊ธฐ์ค€์œผ๋กœ ์™ผ์ชฝ์—์„œ max ๊ฐ’ ์ฐพ๊ธฐ
    right_max = max(block[i+1:]) # ํ˜„์žฌ ๋ธ”๋Ÿญ์„ ๊ธฐ์ค€์œผ๋กœ ์˜ค๋ฅธ์ชฝ์—์„œ max ๊ฐ’ ์ฐพ๊ธฐ
    m = min(left_max, right_max) #left_max์™€ right_max ์ค‘ ์ž‘์€ ๊ฐ’์„ ๋ณ€์ˆ˜์— ๋‹ด์ž.
    
    # ํ˜„์žฌ ๋ธ”๋Ÿญ์ด ์ง€์ •ํ•œ ๊ธฐ์ค€๊ฐ’๋ณด๋‹ค ์ž‘์œผ๋ฉด ๋น—๋ฌผ์ด ๊ณ ์ธ๋‹ค.
    if block[i] < m:
        answer += m - block[i]

print(answer)

 

 

+ Recent posts