Week 01 ~ 04 : 알고리즘 문제 풀이 104

파이썬 백준 14888 연산자 끼워넣기

n = int(input()) a = list(map(int, input().split())) C = list(map(int, input().split())) minv = 1000000000 maxv = -minv def DFS(value, i, op, left1, left2, left3, left4) : if op == 1 : value = value + a[i] elif op == 2 : value = value - a[i] elif op == 3 : value = value * a[i] else : value = int(value / a[i]) if i == n - 1 : global maxv, minv maxv = max(maxv, value) minv = min(minv, value) else ..

파이썬 백준 11725 트리의 부모 찾기

import sys input = sys.stdin.readline sys.setrecursionlimit(10**8) n = int(input()) parent = [0 for i in range(n + 1)] V = {} for i in range(1, n + 1) : V[i] = [] for i in range(n-1) : v1, v2 = map(int, input().split()) V[v1].append(v2) V[v2].append(v1) def DFS(p) : for i in V[p] : if parent[i] == 0 : parent[i] = p DFS(i) DFS(1) for i in range(2, n + 1) : print(parent[i]) v1과 v2가 연결되어있다는건 인풋으로 알..

파이썬 백준 18352 특정 거리의 도시 찾기

import sys input = sys.stdin.readline Vn, En, k, x = map(int, input().split()) V = {} for i in range(1, Vn + 1) : V[i] = [] for i in range(En) : v1, v2 = map(int, input().split()) V[v1].append(v2) gone = [False for i in range(Vn+1)] ans = [] def BFS(now) : que = [[now, 0]] while que : q, d = que[0][0], que[0][1] del que[0] if d == k : ans.append(q) else : for i in V[q] : if not gone[i] : gone[i]..