2025-03-07 16:07:49

사실 이걸 풀기 전에 동전 1(백준 2293번)을 풀었었다.

 

그 문제를 풀때는 냅색같은 느낌으로 풀었다가 메모리 초과가 나서 1차원으로 풀었었는데

이문제는 둘중 뭘 선택해도 크게 상관없을 듯 하다.

import sys

t=int(sys.stdin.readline().rstrip())
for _ in range(t):
    n=int(sys.stdin.readline().rstrip())
    arr=list(map(int,sys.stdin.readline().rstrip().split()))
    m=int(sys.stdin.readline().rstrip())
    v=[0]*(m+1)
    v[0]=1
    for i in range(n):
        for j in range(arr[i],m+1):
            v[j]+=v[j-arr[i]]
    print(v[m])

구조적으로 1차원이 더빠를 수 밖에 없고 메모리도 덜쓰니까 1차원으로 작성했다.

'IT > ps' 카테고리의 다른 글

백준 9655번 돌 게임  (0) 2025.03.07
백준 9625번 BABBA  (0) 2025.03.07
백준 9251번 LCS  (0) 2025.03.07
백준 4883번 삼각 그래프  (0) 2025.03.07
백준 2240번 자두나무  (0) 2025.03.04