전체 글

https://www.acmicpc.net/problem/11931코드합병 정렬(Merge Sort)import sysinput = sys.stdin.readlinen = int(input())arr = [int(input()) for _ in range(n)]def merge_sort(arr): n = len(arr) if n == 1: return arr left = merge_sort(arr[:n//2]) right = merge_sort(arr[n//2:]) l_idx, r_idx = 0, 0 result = [] while l_idx right[r_idx]: result.append(left[l_idx]) ..
https://www.acmicpc.net/problem/21316코드from collections import defaultdict, dequegraph = [[] for _ in range(13)]for _ in range(12): x, y = map(int, input().split()) graph[x].append(y) graph[y].append(x)def bfs(start): dist = [12]*13 dist[start] = 0 q = deque([start]) while q: now = q.popleft() for nx in graph[now]: if dist[nx] > dist[now]+1: ..
https://www.acmicpc.net/problem/2057코드n = int(input())factorial = [1]for i in range(1, 20): factorial.append(factorial[-1]*i)answer = "NO"def bt(num, total): global answer if total == n: answer = "YES" return elif total > n or num >= 20: return # num을 포함 bt(num+1, total+factorial[num]) # num을 포함X bt(num+1, total)if n != 0: bt(0, 0)print(answer) 문제에..
https://www.acmicpc.net/problem/14907 코드from collections import dequelines = []while True: try: line = input() if not line: break lines.append(line) except EOFError: breakgraph = [[] for _ in range(26)]indegree = [0] * 26times = [0] * 26q = deque()total_times = [0]*26for line in lines: line = line.split() task = ord(line[0]) - ord('A') date =..
https://www.acmicpc.net/problem/14452코드from heapq import heappop, heappushimport sysinput = sys.stdin.readlinen, t_max = map(int, input().split())durations = [int(input()) for _ in range(n)]def calculate_total_duration(k): stage = [] # 시작 for i in range(k): heappush(stage, durations[i]) # 무대 진행 time = 0 d_idx = k while time  보통 이렇게 정해진 범위 안에서 가장 작은 값 또는 가장 큰 값을 구하는 문제..
https://www.acmicpc.net/problem/30404코드n, k = map(int, input().split())kkwaeg = list(map(int, input().split()))idx = 0answer = 0while idx  한 번 박수를 칠 때 가능한 모든 꽥꽥을 커버칠 수 있게 한다고 생각하면 된다.예를 들어, k=4이고 꽥꽥소리를 3초, 5초, 7초에 한 번씩 낸다면 7초에 한 번 치는 것만으로도 3번의 꽥꽥을 커버할 수 있게 된다.  어떤 꽥꽥으로부터 k 이하의 거리에 있는 것들은 같이 친다고 보면 다음과 같이 코드를 구현할 수 있다.time = kkwaeg[idx]answer += 1idx += 1while idx time은 함께 처리할 꽥꽥 중 가장 먼저 오는 꽥꽥이다...