Open robert-min opened 1 year ago
# 이 동전을 적당히 사용해서, 그 가치의 합이 k원
# 첫째 줄에 경우의 수를 출력한다.
import sys input = sys.stdin.readline
n, k = map(int, input().split())
coins = [] for _ in range(n): coins.append(int(input()))
dp = [0 for i in range(k+1)] dp[0] = 1
for coin in coins: for i in range(coin, k + 1):
possible = dp[i - coin]
dp[i] += possible
print(dp[k])
줄 세우기 링크
import sys from collections import deque input = sys.stdin.readline
N, M = map(int, input().split())
graph = [[] for in range(N + 1)] inDegree = [0 for in range(N + 1)] # 진입차수
for i in range(M): a, b = map(int, input().split()) graph[a].append(b) inDegree[b] += 1
1. 진입차수가 0인 정점을 큐에 삽입
queue = deque() for i in range(1, N+ 1): if inDegree[i] == 0: queue.append(i)
answer = []
4. 이후 2~3의 과정을 반복
while queue: temp = queue.popleft() answer.append(temp) for i in graph[temp]:
2. 큐에서 원소를 꺼내 해당 원소와 연결된 간선을 모두 제거
print(*answer)