dev/algorithm
BOJ / 11048๋ฒ / ์ด๋ํ๊ธฐ [Go][Python3]
crscnt
2021. 3. 26. 21:00
๐ฉ๐ป๐ป ๋ฌธ์
11048๋ฒ: ์ด๋ํ๊ธฐ
์ค๊ท๋ N×M ํฌ๊ธฐ์ ๋ฏธ๋ก์ ๊ฐํ์๋ค. ๋ฏธ๋ก๋ 1×1ํฌ๊ธฐ์ ๋ฐฉ์ผ๋ก ๋๋์ด์ ธ ์๊ณ , ๊ฐ ๋ฐฉ์๋ ์ฌํ์ด ๋์ฌ์ ธ ์๋ค. ๋ฏธ๋ก์ ๊ฐ์ฅ ์ผ์ชฝ ์ ๋ฐฉ์ (1, 1)์ด๊ณ , ๊ฐ์ฅ ์ค๋ฅธ์ชฝ ์๋ซ ๋ฐฉ์ (N, M)์ด๋ค. ์ค๊ท๋
www.acmicpc.net
โ๐ป ํ์ด
๐จ Go
// https://www.acmicpc.net/problem/11048
package main
import (
"bufio"
"fmt"
"math"
"os"
)
func main() {
reader := bufio.NewReader(os.Stdin)
writer := bufio.NewWriter(os.Stdout)
defer writer.Flush()
var n, m int
fmt.Fscanln(reader, &n, &m)
var candy = make([][]int, n+1)
for i := 1; i < n+1; i++ {
candy[i] = make([]int, m+1)
for j := 1; j < m+1; j++ {
fmt.Fscanf(reader, "%d ", &candy[i][j])
}
}
var dp = make([][]int, n+1)
for i := 0; i < n+1; i++ {
dp[i] = make([]int, m+1)
}
for i := 1; i < n+1; i++ {
for j := 1; j < m+1; j++ {
dp[i][j] = int(math.Max(float64(dp[i-1][j]), float64(dp[i][j-1]))) + candy[i][j]
}
}
fmt.Fprintln(writer, dp[n][m])
}
๐จ Python3
# https://www.acmicpc.net/problem/11048
import sys
if __name__ == "__main__":
n, m = list(map(int, sys.stdin.readline().split()))
candy = []
for i in range(n):
candy.append(list(map(int, sys.stdin.readline().split())))
dp = [[0 for _ in range(m+1)] for _ in range(n+1)]
for i in range(1, n+1):
for j in range(1, m+1):
dp[i][j] = max(dp[i-1][j], dp[i][j-1]) + candy[i-1][j-1]
print(dp[n][m])
728x90