목록전체 글 (42)
쏘ing

https://www.acmicpc.net/problem/2606 풀이 #DFS from collections import deque def virus(graph, start, visited): queue = deque([start]) visited[start] = True count = 0 while queue: V = queue.popleft() count += 1 for i in graph[V]: if not visited[i]: queue.append(i) visited[i] = True print(count - 1) N = int(input()) M = int(input()) graph = [[] for _ in range(N + 1)] for _ in range (M): a, b = map(i..

https://www.acmicpc.net/problem/1260 풀이 from collections import deque def dfs(graph, V, visitied): visited[V] = True print(V, end = " ") for i in graph[V]: if not visited[i]: dfs(graph, i, visited) def bfs(graph, start, visitied): queue = deque([start]) visited[start] = True while queue: V = queue.popleft() print(V, end=" ") for i in graph[V]: if not visited[i]: queue.append(i) visited[i] = True..

https://www.acmicpc.net/problem/11726 풀이 num = int(input()) num_list = [0, 1, 2, 3] if num < 3: print(num_list[num] % 10007) else: # f(n) = f(n-1) + f(n-2) for i in range (4, num+1): num_list.append(num_list[-1] + num_list[-2]) print(num_list[num] % 10007)

https://www.acmicpc.net/problem/11286 풀이 import heapq import sys num = int(sys.stdin.readline().rstrip()) num_list = [] for _ in range (num): temp = int(sys.stdin.readline().rstrip()) # 0일 때 list가 비어있으면 0출력 if temp == 0: if len(num_list) == 0: print(0) # 절댓값이 가장 작은 값 출력 else: print(heapq.heappop(num_list)[1]) # 절댓값 작은 순으로 넣기 else: heapq.heappush(num_list, (abs(temp), temp))

https://www.acmicpc.net/problem/1927 풀이 import heapq import sys num = int(sys.stdin.readline().rstrip()) num_list = [] for _ in range (num): temp = int(sys.stdin.readline().rstrip()) # 입력이 0일 때 if temp == 0: # 배열이 비어있을 경우 0 출력 if len(num_list) == 0: print(0) # 아니면 작은 값 출력 else: print(heapq.heappop(num_list)) # 0이 아닐 경우 배열에 넣기 else: heapq.heappush(num_list, temp)

https://www.acmicpc.net/problem/9461 풀이 list = [0, 1, 1, 1] # f(n) = f(n-3) + f(n-2) for _ in range (4, 101): list.append(list[-3] + list[-2]) num = int(input()) for _ in range (num): print(list[int(input())])

https://www.acmicpc.net/problem/1003 풀이 # f(n)일 때, 0의 개수 ex) f(0) = 1, f(1) = 0, f(2) = 1 list0 = [1, 0] # f(n)일 때, 1의 개수 list1 = [0, 1] # n이 40보다 작거나 같으므로 40개 계산 # f(n) = f(n-1) + f(n-2) for i in range (40): list0.append(list0[-1] + list0[-2]) list1.append(list1[-1] + list1[-2]) num = int(input()) # 입력 값에 맞는 0, 1 개수 출력 for _ in range (num): temp = int(input()) print(list0[temp], list1[temp])

https://www.acmicpc.net/problem/1463 풀이 import sys num = int(sys.stdin.readline().rstrip()) num_list = [0, 0, 1, 1] for i in range(4, num + 1): num_list.append(num_list[i-1] + 1) if i % 2 == 0: # 2로 나누어 떨어졌을 때의 경우 + 1을 해줘야 한다 ex) f(2) = 1일 때, f(4) 는 f(2)보다 # 한 번 더 연산(나누기)했기 때문에 1을 더해줘야 한다 num_list[i] = min(num_list[i // 2] + 1, num_list[i]) if i % 3 == 0: num_list[i] = min(num_list[i // 3] + 1, ..

https://www.acmicpc.net/problem/9095 풀이 import sys num = int(sys.stdin.readline().rstrip()) # 입력받은 숫자 순으로 출력하기 위해 0은 모양 맞추기 위해 넣은 것 list = [0, 1, 2, 4] # f(n) = f(n-3) + f(n-2) + f(n-1) # 11보다 작으므로 11까지 계산 for _ in range(4, 12): list.append(sum(list[-3:])) # 입력받은 값에 해당하는 값 출력 for _ in range(num): print(list[int(sys.stdin.readline().rstrip())])

https://www.acmicpc.net/problem/11047 풀이 N, K = map(int, input().split()) coin = [] for _ in range (N): coin.append(int(input())) index = N-1 count = 0 while K > 0: if coin[index] > K: index -= 1 else: count += K // coin[index] K %= coin[index] print(count)