본문 바로가기

잡/공부일기

9/11 공부

금광문제 

for tc in range(int(input())):
    n,m = map(int,input().split())
    data = list(map(int,input().split()))
    
    dp = []
    index = 0
    for i in range(n):
        dp.append(data[index:index+m])
        index+=m

    for i in range(n):
        for j in range(1,m):
            if i == 0:
                left = 0
            else:
                left = dp[i-1][j-1]
            
            middle = dp[i][j-1]

            if i == n-1:
                right = 0
            else:
                right = dp[i+1][j-1]
            
            dp[i][j] = max(left,middle,right) + dp[i][j]
    result = 0
    for i in range(n):
        result = max(result, dp[i][m-1])
    print(result)

 

특히 데이터 입력받는 부분인 

n,m = map(int,input().split())
    data = list(map(int,input().split()))
    
    dp = []
    index = 0
    for i in range(n):
        dp.append(data[index:index+m])
        index+=m

여기 부분이 익히면 좋은 예제였다

 

 

반응형

' > 공부일기' 카테고리의 다른 글

10월 7일 공부  (0) 2021.10.07
9/25 공부  (0) 2021.09.25
8/27 공부  (0) 2021.08.27
8/23 공부  (0) 2021.08.23
8/16 공부  (0) 2021.08.16