๐ŸŒžAlgorithm/๐Ÿ”ฅBaekjoon

[Baekjoon] 11048_์ด๋™ํ•˜๊ธฐ

๋ฟŒ์•ผ._. 2022. 3. 9. 22:27

Silver I

๋ฌธ์ œ(์ถœ์ฒ˜: 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์˜ ๊ฐ€์žฅ ๋งˆ์ง€๋ง‰ ๊ฐ’ 

์ƒ๊ฐ๐Ÿค”

 

์ƒ๊ฐ๋ณด๋‹ค ๋น ๋ฅด๊ฒŒ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์—ˆ๋˜ ๋ฌธ์ œ์˜€๋‹ค. 

๋‹ค์ด๋‚˜๋ฏน ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ฟŒ์‹œ๊ธฐ -!