์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ/BOJ_Python

[BOJ/Step15] 1932 : ์ •์ˆ˜ ์‚ผ๊ฐํ˜• (Python)

NaNaRin๐Ÿ™ƒ 2021. 2. 25. 17:19

www.acmicpc.net/problem/1932

 

1932๋ฒˆ: ์ •์ˆ˜ ์‚ผ๊ฐํ˜•

์ฒซ์งธ ์ค„์— ์‚ผ๊ฐํ˜•์˜ ํฌ๊ธฐ n(1 ≤ n ≤ 500)์ด ์ฃผ์–ด์ง€๊ณ , ๋‘˜์งธ ์ค„๋ถ€ํ„ฐ n+1๋ฒˆ์งธ ์ค„๊นŒ์ง€ ์ •์ˆ˜ ์‚ผ๊ฐํ˜•์ด ์ฃผ์–ด์ง„๋‹ค.

www.acmicpc.net


1149๋ฒˆ์ด๋ž‘ ๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ ์ ‘๊ทผํ•˜๋ฉด ๋œ๋‹ค

 

1. ์ž…๋ ฅ๋ฐ›์€ ์ˆ˜๋ฅผ ํ”ผ๋ผ๋ฏธ๋“œ ํ˜•์‹์˜ ์ด์ค‘ ๋ฆฌ์ŠคํŠธ tri์— ์ €์žฅ

2. ๋‘๋ฒˆ์งธ ์ค„๋ถ€ํ„ฐ ํ•œ์ค„ํ•œ์ค„ ์ด์ „ ์ค„์— ์ž์‹ ์„ ์„ ํƒ ๊ฐ€๋Šฅํ•œ ๋‘๊ฐ€์ง€ ์ˆ˜ ์ค‘ ๋” ํฐ ์ˆ˜๋ฅผ ์ž์‹ ์— ๋”ํ•œ๋‹ค

  2-1. ์ฒซ๋ฒˆ์งธ ์ˆซ์ž๋Š” ์ด์ „ ์ค„์˜ ์ฒซ๋ฒˆ์งธ ์ˆซ์ž๋งŒ์ด ์ž์‹ ์„ ์„ ํƒํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ๋ฌด์กฐ๊ฑด ์ฒซ๋ฒˆ์งธ ์ˆซ์ž๋งŒ ๋”ํ•ด์ค€๋‹ค

  2-2. ๋งˆ์ง€๋ง‰ ์ˆซ์ž๋Š” ์ด์ „ ์ค„์˜ ๋งˆ์ง€๋ง‰ ์ˆซ์ž๋งŒ์ด ์ž์‹ ์„ ์„ ํƒํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ๋ฌด์กฐ๊ฑด ๋งˆ์ง€๋ง‰ ์ˆซ์ž๋งŒ ๋”ํ•ด์ค€๋‹ค

3. tri์˜ ๋งˆ์ง€๋ง‰ ์ค„์—์„œ ๊ฐ€์žฅ ํฐ ์ˆซ์ž๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค

 

# 1932.py

n = int(input())

tri = [[i for i in map(int, input().split())] for i in range(n)]

for i in range(1, n):
    tri[i][0] = tri[i][0] + tri[i-1][0]
    for j in range(1, i):
        tri[i][j] = tri[i][j] + max(tri[i-1][j-1], tri[i-1][j])
    tri[i][i] = tri[i][i] + tri[i-1][i-1]

print(max(tri[n-1]))