본문 바로가기

Algorithm/BOJ133

[백준] 1238번 - 파티 (파이썬) # 파티 import sys import heapq input = sys.stdin.readline MAX = sys.maxsize N, M, X = map(int, input().split()) arr = [[] for _ in range(N+1)] for _ in range(M): a, b, cost = map(int, input().split()) arr[a].append((cost, b)) come = [MAX] * (N+1) go = [MAX] * (N+1) def go_dijkstra(x): q = [] heapq.heappush(q, (0, x)) go[x] = 0 while q: cost, node = heapq.heappop(q) for ncost, nnode in arr[node]: i.. 2022. 1. 25.
[백준] 12100번 - 2048(Easy) (파이썬) # 2048 (Easy) import copy import sys input = sys.stdin.readline N = int(input()) arr = [] for _ in range(N): arr.append(list(map(int, input().split()))) dir = [[0, 1], [1, 0], [0, -1], [-1, 0]] result = 0 def move_block(arr, n): set_result(arr) if n == 5: # 이동 끝 return for k in range(4): temp = copy.deepcopy(arr) combine_and_move(temp, k) move_block(temp, n+1) def combine_and_move(arr, k): is_co.. 2022. 1. 25.
[백준] 1707번 - 이분 그래프 (파이썬) # 이분 그래프 import sys from collections import deque input = sys.stdin.readline def bfs(start): global result q = deque() q.append(start) visited[start] = 0 while q: node = q.popleft() for nnode in arr[node]: if visited[nnode] == -1: visited[nnode] = visited[node] % 2 + 1 q.append(nnode) else: if visited[nnode] == visited[node]: result = 'NO' return T = int(input()) for _ in range(T): V, E = map(in.. 2022. 1. 25.
[백준] 2252번 - 줄 세우기 (파이썬) # 줄 세우기 from collections import deque import sys input = sys.stdin.readline N, M = map(int, input().split()) arr = [[] for _ in range(N+1)] front = [0] * (N+1) for _ in range(M): a, b = map(int, input().split()) arr[a].append(b) front[b] += 1 def sort(): result = [] q = deque() for k in range(1, len(front)): if front[k] == 0: q.append(k) while q: now = q.popleft() result.append(now) for nnow in .. 2022. 1. 24.
[백준] 1717번 - 집합의 표현 (파이썬) # 집합의 표현 import sys input = sys.stdin.readline sys.setrecursionlimit(10**5) N, m = map(int, input().split()) parent = [i for i in range(N+1)] def union(x, y): a = find_parent(x) b = find_parent(y) if a > b: parent[a] = b else: parent[b] = a def find_parent(x): if x != parent[x]: parent[x] = find_parent(parent[x]) return parent[x] def is_set(x, y): if find_parent(x) == find_parent(y): print('YES'.. 2022. 1. 24.
[백준] 2252번 - 스도쿠 (파이썬) # 스도쿠 import sys input = sys.stdin.readline N = 9 arr = [] zero = [] for i in range(N): arr.append(list(map(int, input().split()))) for j in range(N): if arr[i][j] == 0: zero.append((i, j)) def check(x, y, num): for j in range(N): if arr[x][j] == num: return False for i in range(N): if arr[i][y] == num: return False temp_x = x // 3 * 3 temp_y = y // 3 * 3 for i in range(temp_x, temp_x+3): for j .. 2022. 1. 24.
[백준] 16236번 - 아기 상어 (파이썬) # 아기 상어 import sys from collections import deque MAX = sys.maxsize input = sys.stdin.readline N = int(input()) arr = deque() fish = [] now_x = 0 now_y = 0 for i in range(N): arr.append(list(map(int, input().split()))) for j in range(N): if arr[i][j] != 0 and arr[i][j] != 9: fish.append((i, j)) elif arr[i][j] == 9: now_x = i now_y = j arr[i][j] = 0 dx = [0, 1, 0, -1] dy = [1, 0, -1, 0] fish.sort(.. 2022. 1. 23.