백준/골드7 동전 1 출처 : https://www.acmicpc.net/problem/2293 코드 import sys# 입력input_data = sys.stdin.read().splitlines()N, K = map(int, input_data[0].split())coins = list(map(int, input_data[1:]))# 테스트용# N, K = 3, 10# coins = [1, 2, 5]dp = [0] * (K + 1) # dp[i] = i원을 만들 수 있는 조합의 개수dp[0] = 1 # 0원을 만드는 경우는 아무 동전도 사용하지 않는 경우 1가지for coin in coins: for i in range(coin, K + 1): dp[i] += dp[i - coin] # 현재 금.. 2025. 2. 20. 택배 배송 5972번 - Python, 다익스트라(Dijkstra) 출처 : https://www.acmicpc.net/problem/5972 코드 import heapqdef dijkstra(graph, start): INF = float('inf') N = len(graph) distance = [INF] * N distance[start] = 0 pq = [] heapq.heappush(pq, (start, 0)) while pq: now, dist = heapq.heappop(pq) for neighbor, weight in graph[now]: cost = dist + weight if cost 풀이 최소 비용을 구하는 문제이기에 다익스트라를 사용했습니다. .. 2025. 2. 7. 음악프로그램(2623) - Python, 위상정렬 https://www.acmicpc.net/problem/2623 코드 from collections import deque# 입력N, M = map(int, input().split())graph = [[] for _ in range(N + 1)]indegree = [0] * (N + 1)# 그래프 그리기for i in range(1, M + 1): info = list(map(int, input().split())) num_singers = info[0] order = info[1:] for j in range(num_singers - 1): graph[order[j]].append(order[j + 1]) indegree[order[j + 1]] +.. 2025. 1. 24. 숫자고르기 - Python https://www.acmicpc.net/problem/2668 코드 def solution(N, graph): visited = [False] * (N + 1) result = [] def dfs(start): stack, path = [start], [] while stack: node = stack.pop() if visited[node]: # 싸이클 발견 if node in path: idx = path.index(node) result.extend(path[idx:]) return .. 2025. 1. 22. 피자판매 2632번 - Pyton, 부분합 https://www.acmicpc.net/problem/2632 코드 from collections import Counter# 피자에서 가능한 부분합을 구하는 함수def find_sums(pizza, target): n = len(pizza) sub_sums = Counter() for i in range(n): sub_sum = 0 for piece in pizza[i:] + pizza[:i]: # 원형 배열 순회 sub_sum += piece if sub_sum > target: break sub_sums[sub_sum] += 1 if sum(pizza) 풀이.. 2025. 1. 1. 백준 > 2931번 > 가스관 - JAVA 문제 러시아 가스를 크로아티아로 운반하기 위해 자그레브와 모스코바는 파이프라인을 디자인하고 있다. 두 사람은 실제 디자인을 하기 전에 파이프 매니아 게임을 이용해서 설계를 해보려고 한다. 이 게임에서 유럽은 R행 C열로 나누어져 있다. 각 칸은 비어있거나, 아래 그림과 같은 일곱가지 기본 블록으로 이루어져 있다. 가스는 모스크바에서 자그레브로 흐른다. 가스는 블록을 통해 양방향으로 흐를 수 있다. '+'는 특별한 블록으로, 아래 예시처럼 두 방향 (수직, 수평)으로 흘러야 한다. 파이프 라인의 설계를 마친 후 두 사람은 잠시 저녁을 먹으러 갔다. 그 사이 해커가 침임해 블록 하나를 지웠다. 지운 블록은 빈 칸이 되어있다. 해커가 어떤 칸을 지웠고, 그 칸에는 원래 어떤 블록이 있었는지 구하는 프로그램을 .. 2023. 8. 29. 이전 1 2 다음