목록Java (52)
rose_brown

1. 문제https://www.acmicpc.net/problem/10868 2. 코드pythonimport sysinput = sys.stdin.readlineN, M = map(int, input().split())treeHeight = 0length = Nwhile length != 0: length //= 2 treeHeight += 1treeSize = pow(2, treeHeight+1)leftNodeStartIndex = treeSize // 2 - 1tree = [sys.maxsize] * (treeSize + 1)for i in range(leftNodeStartIndex + 1, leftNodeStartIndex + N + 1): tree[i] = int(input())..

1. 문제https://www.acmicpc.net/problem/1991 2. 코드pythonimport sysinput = sys.stdin.readlineN = int(input())tree = {}for i in range(N): root,left, right = map(str,input().split()) tree[root] = [left, right]def preOrder(now): # root -> left -> right if now == '.': return print(now, end="") preOrder(tree[now][0]) preOrder(tree[now][1])def inOrder(now): # left -> root ->..

1. 문제https://www.acmicpc.net/problem/14425 2. 코드python 1import sysinput = sys.stdin.readlineclass Node(object): def __init__(self, isEnd): self.isEnd = isEnd self.childNode = {}class Trie(object): def __init__(self): self.parent = Node(None) def insert(self, string): nowNode = self.parent temp_lenght = 0 for char in string: # 자식 노드들 미..

1. 문제https://www.acmicpc.net/problem/1068 2. 코드pythonimport syssys.setrecursionlimit(10**6)input = sys.stdin.readlineN = int(input())tree = [[] for _ in range(N+1)]visited = [False] * (N+1)answer = 0p = list(map(int, input().split()))del_num = int(input())for i in range(N): if p[i] != -1: tree[i].append(p[i]) tree[p[i]].append(i) else: root = idef DFS(num): global a..

1. 문제https://www.acmicpc.net/problem/11725 2. 코드pythonimport syssys.setrecursionlimit(10**6)input = sys.stdin.readlineN = int(input())tree = [[]for _ in range(N+1)]visited = [False] * (N+1)answer = [0] * (N+1)for i in range(1, N): n1, n2 = map(int, input().split()) tree[n1].append(n2) tree[n2].append(n1)def DFS(num): visited[num] = True for i in tree[num]: if not visited[i]..

1. 문제https://www.acmicpc.net/problem/1414 2. 코드pythonimport sysfrom queue import PriorityQueueinput = sys.stdin.readlineN = int(input())pq = PriorityQueue()sum = 0for i in range(N): tempC = list(input()) for j in range(N): temp = 0 if 'a' 0: v, s, e = pq.get() if find(s) != find(e): union(s, e) result += v useEdge += 1if useEdge == N - 1: print(..

1. 문제https://www.acmicpc.net/problem/17472 2. 코드pythonimport copyimport sysfrom collections import dequefrom queue import PriorityQueuesys.setrecursionlimit(10**6)input = sys.stdin.readlinedr = [0, 1, 0, -1] # 행 이동 방향 (오른쪽, 아래, 왼쪽, 위)dc = [1, 0, -1, 0] # 열 이동 방향 (오른쪽, 아래, 왼쪽, 위)N, M = map(int, input().split())myMap = [[0 for j in range(M)] for i in range(N)]visited = [[False for j in range(M)]..

1. 문제https://www.acmicpc.net/problem/1197 2. 코드pythonimport sysfrom queue import PriorityQueuesys.setrecursionlimit(10**6)input = sys.stdin.readlineN, M = map(int, input().split())q = PriorityQueue()parent = [0] * (N+1)for i in range(N+1): parent[i] = ifor i in range(M): s, e, w = map(int,input().split()) q.put((w,s,e))def find(a): if a == parent[a]: return a else: p..

1. 문제https://www.acmicpc.net/problem/11403 2. 코드pythonimport sysinput = sys.stdin.readlineN = int(input())dist = [[0 for j in range(N)]for i in range(N)]for i in range(N): dist[i] = list(map(int, input().split()))for k in range(N): for i in range(N): for j in range(N): if dist[i][k] == 1 and dist[k][j] == 1: dist[i][j] = 1for i in range(N): for j in rang..

1. 문제https://www.acmicpc.net/problem/11404 2. 코드pythonimport sysinput = sys.stdin.readlineN = int(input())M = int(input())dist = [[sys.maxsize for j in range(N+1)] for i in range(N+1)]for i in range(N+1): dist[i][i] = 0for _ in range(M): start, end, price = map(int, input().split()) if dist[start][end] > price: dist[start][end] = pricefor k in range(1, N+1): for i in range(1, ..