less than 1 minute read


sport

bj 2812 - 크게 만들기

fail

dp를 이용해서 푸려고 했으나, 구현이 꼬인건지 제대로 계산되지 않는다.

bj 10815 - 숫자 카드

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

python solution

def solve():
    N=ria()[0]
    has=dict.fromkeys(ria())
    # print(has)
    M=ria()[0]
    ans=['1' if x in has else '0' for x in ria()]
    print(' '.join(ans))
    pass

bj 17485 - 진우의 달 여행(Large)

python solution

운좋게 굉장히 깔끔한 코드로 풀었다. col+pd부분은 그냥 찍어서 맞은수준..


def solve():
    N,M = ria()
    cur=create2DArray(M,3,0)
    prev=create2DArray(M,3,0)
    directions = {-1,0,1}

    def get_possible_directions(direction):
        pd={-1,0,1}
        pd.remove(direction)
        return pd

    for row in range(N):
        cur=create2DArray(M,3,0)
        cost_row = ria()
        
        for col in range(M):
            for di in directions:
                possible_directions = get_possible_directions(di)
                # cur[col][di] = prev[col][di]
                min_prev = 9999999
                for pd in possible_directions:
                    # cur[col][di] += 
                    if(0<=col+pd<M):
                        min_prev=min(min_prev,prev[col+pd][pd])
                cur[col][di]=min_prev+cost_row[col]
                
            pass
        
        prev=cur
    
    # print(cur)
    ans = 9999999999
    for curs in cur:
        for item in curs:
            ans=min(ans,item)
    print(ans)
    pass

Tags:

Categories:

Updated:

Comments