๐Ÿ‘ฉโ€๐ŸŽ“๊ณต๋ถ€ - 2024.02.16 ์ฝ”๋”ฉ ๋ฌธ์ œํ’€์ด

์œ ๋ น๊ฐœยท2024๋…„ 2์›” 16์ผ
0

PS-์•Œ๊ณ ๋ฆฌ์ฆ˜2

๋ชฉ๋ก ๋ณด๊ธฐ
30/34
post-thumbnail

11048๋ฒˆ - ์ด๋™ํ•˜๊ธฐ

๋ฏธ๋กœ๊ฐ€ ์ฃผ์–ด์ง€๊ณ  ๊ฐ ๋ฏธ๋กœ์˜ ์นธ์— ์‚ฌํƒ•์ด ๋†“์—ฌ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•  ๋•Œ, ๋ฆฌ์ŠคํŠธ (0,0) ์—์„œ (N,M)๊นŒ์ง€ ๊ฐ€๋Š”๋ฐ ์ฃผ์šธ ์ˆ˜ ์žˆ๋Š” ์‚ฌํƒ•์˜ ์ตœ๋Œ“๊ฐ’์„ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค.

์–ธ๋œป ๋ณด๋ฉด BFS๋ฅ˜๋ผ๊ณ  ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ์œผ๋‚˜ DP๋กœ ํ•ด๊ฒฐ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.


๋ถ„์„

์–ด์ œ ์ €๋Š” 14494๋ฒˆ์„ ํ†ตํ•ด ์ด์ฐจ์› ๋ฆฌ์ŠคํŠธ์—์„œ DP๋กœ ์ตœ๋‹จ๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์ตํ˜”์Šต๋‹ˆ๋‹ค.
์ด ๋ฌธ์ œ๋„ ๊ทธ๋Ÿฌํ•œ ๋ฐฉ์‹์œผ๋กœ ์ž˜ ์ƒ๊ฐํ•ด๋ณด๋ฉด ํ’€์ด๊ฐ€ ๋‚˜์˜ต๋‹ˆ๋‹ค.

์œ„ ๊ทธ๋ฆผ์— ์ ์–ด๋†จ๋“ฏ์ด

๋ฆฌ์ŠคํŠธ[i][j]์˜ ์ตœ๋Œ€ ์‚ฌํƒ• ๊ฐฏ์ˆ˜๋Š” i,j์˜ ์˜†๊นŒ์ง€ ๋„๋‹ฌํ•˜๋Š”๋ฐ ์ฃผ์›Œ์˜จ ์‚ฌํƒ•์˜ ์ตœ๋Œ€ ๊ฐฏ์ˆ˜(dp[i][j-1])์™€ i,j์˜ ์œ„๊นŒ์ง€ ๋„๋‹ฌํ•˜๋Š”๋ฐ ์ฃผ์›Œ์˜จ ์‚ฌํƒ•์˜ ์ตœ๋Œ€ ๊ฐฏ์ˆ˜(dp[i-1][j])๋ฅผ ๋Œ€์กฐํ•ด ๋” ํฐ๊ฐ’ + ๋ฆฌ์ŠคํŠธ[i][j]์˜ ์‚ฌํƒ•๊ฐฏ์ˆ˜

๋ฅผ ๊ณ„์‚ฐํ•˜๊ฒŒ ๋˜๋ฉด ํ•ด๋‹น ์ ํ™”์‹์ด ๋„์ถœ๋˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.


์ฝ”๋”ฉ

N,M = map(int,input().split())
lst = []
for _ in range(N):
    lst.append(list(map(int,input().split())))

๋จผ์ € ๋ฌธ์ œ์—์„œ ์ฃผ์–ด์ง„ ๋ฏธ๋กœ๋ฅผ ๋ฐ›์•„์ค์‹œ๋‹ค.

dp = [[0]*M for _ in range(N)]
dp[0][0] = lst[0][0]

dp๋ฆฌ์ŠคํŠธ๋ฅผ ๋ฏธ๋กœ ํฌ๊ธฐ์™€ ๋˜‘๊ฐ™์ด ์ƒ์„ฑํ•˜๊ณ  dp[0][0]์„ ์ ํ™”์‹์„ ์œ„ํ•ด lst[0][0]๊ณผ ๋˜‘๊ฐ™์ด ์„ค์ •ํ•ด์ค๋‹ˆ๋‹ค.

for i in range(N):
    for j in range(M):
        dp[i][j] = max(dp[i][j-1],dp[i-1][j]) + lst[i][j]

์ด์ œ ๋ถ„์„๋‹จ๊ณ„์—์„œ ๋„์ถœํ•œ ์ ํ™”์‹์„ ์ ์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

if N == 1:
    print(sum(lst[0]))
else:
    print(dp[N-1][M-1])

๋งˆ์ง€๋ง‰ ์ถœ๋ ฅ๋ถ€๋ถ„์—์„œ ํ•œ๊ฐ€์ง€ ์ฃผ์˜ํ•  ์ ์€ N์ด 1์ธ ๊ฒฝ์šฐ์ž…๋‹ˆ๋‹ค.
N์ด 1์ด๋ฉด ์„ธ๋กœ๊ธธ์ด๊ฐ€ 1์ด ๋˜์–ด ์ ํ™”์‹์„ ์ฐธ๊ณ ํ•˜์—ฌ ๋„์ถœํ•˜๋ฉด ์ด์ƒํ•œ ๊ฐ’์ด ๋„์ถœ๋ฉ๋‹ˆ๋‹ค.

์„ธ๋กœ๊ธธ์ด๊ฐ€ 1์ด๋ผ๋ฉด ์–ด์ฐจํ”ผ ๋ฏธ๋กœ์˜ ์ „์ฒด ํ•ฉ์ด ์‚ฌํƒ•์˜ ์ตœ๋Œ€ ๊ฐฏ์ˆ˜๊ฐ€ ๋˜๋ฏ€๋กœ ๋ฏธ๋กœ์˜ ํ•ฉ์‚ฐ์„ ์ถœ๋ ฅํ•˜๊ณ 
์•„๋‹ˆ๋ผ๋ฉด ๋„์ฐฉ์ง€์ ์˜ dp๊ฐ’์„ ๋„์ถœํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.




profile
ํ•œ๋ฆผ๋Œ€ํ•™๊ต ์ •๋ณด๊ณผํ•™๋Œ€ 2ํ•™๋…„ ์žฌํ•™์ค‘ / ์œก๊ตฐ ์ •๋ณด๋ณดํ˜ธ๋ณ‘ 22-2๊ธฐ

0๊ฐœ์˜ ๋Œ“๊ธ€