๋ฌธ์ (์ถ์ฒ: https://www.acmicpc.net/problem/11048)
<์ด๋ํ๊ธฐ>
๋ฌธ์
์ค๊ท๋ N×M ํฌ๊ธฐ์ ๋ฏธ๋ก์ ๊ฐํ์๋ค. ๋ฏธ๋ก๋ 1 ×1 ํฌ๊ธฐ์ ๋ฐฉ์ผ๋ก ๋๋์ด์ ธ ์๊ณ , ๊ฐ ๋ฐฉ์๋ ์ฌํ์ด ๋์ฌ์ ธ ์๋ค. ๋ฏธ๋ก์ ๊ฐ์ฅ ์ผ์ชฝ ์ ๋ฐฉ์ (1, 1)์ด๊ณ , ๊ฐ์ฅ ์ค๋ฅธ์ชฝ ์๋ซ ๋ฐฉ์ (N, M)์ด๋ค.
์ค๊ท๋ ํ์ฌ (1, 1)์ ์๊ณ , (N, M)์ผ๋ก ์ด๋ํ๋ ค๊ณ ํ๋ค. ์ค๊ท๊ฐ (r, c)์ ์์ผ๋ฉด, (r+1, c), (r, c+1), (r+1, c+1)๋ก ์ด๋ํ ์ ์๊ณ , ๊ฐ ๋ฐฉ์ ๋ฐฉ๋ฌธํ ๋๋ง๋ค ๋ฐฉ์ ๋์ฌ์ ธ์๋ ์ฌํ์ ๋ชจ๋ ๊ฐ์ ธ๊ฐ ์ ์๋ค. ๋, ๋ฏธ๋ก ๋ฐ์ผ๋ก ๋๊ฐ ์๋ ์๋ค.
์ค๊ท๊ฐ (N, M)์ผ๋ก ์ด๋ํ ๋, ๊ฐ์ ธ์ฌ ์ ์๋ ์ฌํ ๊ฐ์์ ์ต๋๊ฐ์ ๊ตฌํ์์ค.
์ ๋ ฅ
์ฒซ์งธ ์ค์ ๋ฏธ๋ก์ ํฌ๊ธฐ N, M์ด ์ฃผ์ด์ง๋ค. (1 ≤ N, M ≤ 1,000)
๋์งธ ์ค๋ถํฐ N๊ฐ ์ค์๋ ์ด M๊ฐ์ ์ซ์๊ฐ ์ฃผ์ด์ง๋ฉฐ, r๋ฒ์งธ ์ค์ c๋ฒ์งธ ์๋ (r, c)์ ๋์ฌ์ ธ ์๋ ์ฌํ์ ๊ฐ์์ด๋ค. ์ฌํ์ ๊ฐ์๋ 0๋ณด๋ค ํฌ๊ฑฐ๋ ๊ฐ๊ณ , 100๋ณด๋ค ์๊ฑฐ๋ ๊ฐ๋ค.
์ถ๋ ฅ
์ฒซ์งธ ์ค์ ์ค๊ท๊ฐ (N, M)์ผ๋ก ์ด๋ํ ๋, ๊ฐ์ ธ์ฌ ์ ์๋ ์ฌํ ๊ฐ์๋ฅผ ์ถ๋ ฅํ๋ค.
๋ฌธ์ ํ์ด
- my solution
import sys
if __name__=='__main__':
n,m=map(int, sys.stdin.readline().split())
arr=[]
for i in range(n):
arr.append(list(map(int, sys.stdin.readline().split())))
candy=[[0]*m for i in range(n)]
candy[0][0]=arr[0][0]
for i in range(n):
for j in range(m):
if i==0 and j==0:
pass
elif i==0 : # ์ผ์ชฝ ๊ฐ๋ค์ ํฉ
candy[i][j] = candy[i][j-1] + arr[i][j]
elif j==0 : # ์์ชฝ ๊ฐ๋ค์ ํฉ
candy[i][j] = candy[i-1][j] + arr[i][j]
else: # ์ฌํ์ ๊ฐ์๊ฐ ๋ ๋ง์ ๊ฐ์ผ๋ก ์ ์ฅ
if candy[i-1][j]+arr[i][j] > candy[i][j-1]+arr[i][j]:
candy[i][j]=candy[i-1][j]+arr[i][j]
else:
candy[i][j] =candy[i][j-1]+arr[i][j]
print(candy[-1][-1]) # ์ต์ข
๊ฐ์ ธ์ฌ ์ ์๋ ์ฌํ ๊ฐ์
- ๊ฐ์ ธ์ฌ ์ ์๋ ์ฌํ ๊ฐ์์ ์ต๋๊ฐ์ ๊ตฌํ๊ธฐ ์ํด ์กฐ๊ฑด์ ๋๋์ด ํด๊ฒฐ
1) i == 0 : ๋งจ ์์ค๋ก ์ผ์ชฝ ๊ฐ๋ค๋ง ๋ํ๊ธฐ
2) j == 0 : ๋งจ ์ผ์ชฝ ์ค๋ก ์์ชฝ ๊ฐ๋ค๋ง ๋ํ๊ธฐ
3) ๋งจ ์์ค๊ณผ ๋งจ ์ผ์ชฝ ์ค์ด ์๋ ๊ณณ : ์ผ์ชฝ ๊ฐ์ ๋ํ ๊ฒ๊ณผ ์์ชฝ ๊ฐ์ ๋ํ ๊ฒ ์ค ์ฌํ์ ๊ฐ์๊ฐ ๋ ํฐ ๊ฐ์ผ๋ก ์ ์ฅ - answer: candy list์ ๊ฐ์ฅ ๋ง์ง๋ง ๊ฐ
์๊ฐ๐ค
์๊ฐ๋ณด๋ค ๋น ๋ฅด๊ฒ ํด๊ฒฐํ ์ ์์๋ ๋ฌธ์ ์๋ค.
๋ค์ด๋๋ฏน ํ๋ก๊ทธ๋๋ฐ ๋ฟ์๊ธฐ -!
'๐Algorithm > ๐ฅBaekjoon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Baekjoon] 11725_ํธ๋ฆฌ์ ๋ถ๋ชจ ์ฐพ๊ธฐ (0) | 2022.03.11 |
---|---|
[Baekjoon] 2502_๋ก ๋จน๋ ํธ๋์ด (0) | 2022.03.10 |
[Baekjoon] 1389_์ผ๋น ๋ฒ ์ด์ปจ์ 6๋จ๊ณ ๋ฒ์น (0) | 2022.03.08 |
[Baekjoon] 1991_ํธ๋ฆฌ ์ํ (0) | 2022.03.07 |
[Baekjoon] 6603_๋ก๋ (0) | 2022.03.03 |