less than 1 minute read


sport

bj 9465 - 스티커

https://www.acmicpc.net/problem/9465

python solution

안뗀 경우에 대해 이전에도 안뗀 경우를 포함하지 않아서 1회 틀림 바꾸었는데도, 뭔가 고려를 잘못한 것인지, 풀리지가 않는다. 어디가 잘못된 것인지 분석 필요.

def solve():
    T=ria()[0]

    for tt in range(T):
        nn=ria()[0]
        arr1=ria()
        arr2=ria()
        dp=create2DArray(nn,3,0)

        for ii in range(nn):
            dp[ii][0] = max(dp[ii-1][1], dp[ii-1][2])+arr1[ii]
            dp[ii][1] = max(dp[ii-1][0], dp[ii-1][2])+arr2[ii]
            dp[ii][2] = max(dp[ii-1][0], dp[ii-1][1], dp[ii-1][2])
    
        print(max(dp[nn-1][0], dp[nn-1][1], dp[nn-1][2]))
    pass

bj 15724 - 주지수

https://www.acmicpc.net/problem/15724

python solution

def solve():
    N,M=ria()
    maps=create2DArray(N,M,0)
    sums=create2DArray(N,M,0)
    for rr in range(N):
        maps[rr]=ria()
        for cc in range(M):
            sums[rr][cc] = maps[rr][cc]
            if(cc!=0):
                sums[rr][cc]+=sums[rr][cc-1]
    
    for rr in range(N):
        for cc in range(M):
            if(rr!=0):
                sums[rr][cc]+=sums[rr-1][cc]
    
    # print2DArray(maps)
    # print('sums')
    # print2DArray(sums)
    
    K=ria()[0]
    for kk in range(K):
        r1,c1,r2,c2=ria()
        minsr=0
        minsc=0
        plusm=0
        if(r1-2>=0 and c1-2>=0):
            plusm=sums[r1-2][c1-2]
        if(c1-2>=0):
            minsr=sums[r2-1][c1-2]
        if(r1-2>=0):
            minsc=sums[r1-2][c2-1]
        
        diff=sums[r2-1][c2-1]-minsr-minsc+plusm
        print(diff)
    
    pass

Comments