ํ‹ฐ์Šคํ† ๋ฆฌ ๋ทฐ

728x90
๋ฐ˜์‘ํ˜•

๋ฌธ์ œ

 

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

๋ฌธ์ œ 7 3 8 8 1 0 2 7 4 4 4 5 2 6 5 ์œ„ ๊ทธ๋ฆผ์€ ํฌ๊ธฐ๊ฐ€ 5์ธ ์ •์ˆ˜ ์‚ผ๊ฐํ˜•์˜ ํ•œ ๋ชจ์Šต์ด๋‹ค. ๋งจ ์œ„์ธต 7๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด์„œ ์•„๋ž˜์— ์žˆ๋Š” ์ˆ˜ ์ค‘ ํ•˜๋‚˜๋ฅผ ์„ ํƒํ•˜์—ฌ ์•„๋ž˜์ธต์œผ๋กœ ๋‚ด๋ ค์˜ฌ ๋•Œ, ์ด์ œ๊นŒ์ง€ ์„ ํƒ๋œ ์ˆ˜์˜ ํ•ฉ์ด ์ตœ๏ฟฝ

www.acmicpc.net

 

๋ฌธ์ œ ํ’€์ด

 ์‚ผ๊ฐํ˜•์˜ ํŠน์„ฑ์„ ์ดํ•ดํ•˜๋ฉด ์‰ฝ๊ฒŒ ํ’€ ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ œ์ด๋‹ค. ์‚ผ๊ฐํ˜• ์ขŒ/์šฐ์ธก ๋ณ€์— ์žˆ๋Š” ๊ฐ’๋“ค์€ ์œ„์˜ ๊ฐ’ ์ค‘ ํ•˜๋‚˜์˜ ๊ฐ’๋งŒ ๋”ํ•˜๋ฉด ๋˜์ง€๋งŒ ๊ฐ ๋ ๋ณ€์ด ์•„๋‹Œ ๊ฒฝ์šฐ๋Š” 2๊ฐœ์˜ ๊ฐ’์„ ๋ฐ›๊ฒŒ ๋œ๋‹ค. ๋”ฐ๋ผ์„œ ์ขŒ/์šฐ์ธก ๋ณ€์„ ์ œ์™ธํ•˜๊ณ  ๋‚˜๋จธ์ง€๋Š” ๊ฐ€์žฅ ํฐ ๊ฐ’์„ ๋ˆ„์ ํ•ด์ฃผ๋ฉด ๋ฌธ์ œ๋ฅผ ํ’€ ์ˆ˜ ์žˆ๋‹ค.

 

์ฝ”๋“œ

from sys import stdin

if __name__ == '__main__':
    n = int(stdin.readline())
    triangle =\
        [list(map(int, stdin.readline().split())) for _ in range(n)]

    for i in range(1, n):
        for j in range(i + 1):
            # ๊ฐ€์žฅ ์ขŒ์ธก์ธ ๊ฒฝ์šฐ
            if not j:
                triangle[i][j] += triangle[i - 1][j]
            # ๊ฐ€์žฅ ์šฐ์ธก์ธ ๊ฒฝ์šฐ
            elif j == i:
                triangle[i][j] += triangle[i - 1][j - 1]
            # ์ค‘๊ฐ„์— ์œ„์— 2๊ฐœ์˜ ๊ฐ’์„ ๋น„๊ตํ•˜์—ฌ์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ
            else:
                triangle[i][j] += \
                    max(triangle[i - 1][j], triangle[i - 1][j - 1])

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

 

 

728x90
๋ฐ˜์‘ํ˜•
๋Œ“๊ธ€
๊ธ€ ๋ณด๊ด€ํ•จ
์ตœ๊ทผ์— ์˜ฌ๋ผ์˜จ ๊ธ€
์ตœ๊ทผ์— ๋‹ฌ๋ฆฐ ๋Œ“๊ธ€