반응형 알고리즘250 [백준][Python] 20364번 부동산 다툼 20364번: 부동산 다툼 첫 번째 줄에 땅 개수 N과 꽉꽉나라에 사는 오리 수 Q가 공백으로 구분되어 주어진다. (2 ≤ N 0: if b in vis: ans = b b//=2 if ans == 0: vis.add(a) print(ans) for i in num: visit(i) 설명 처음에 vis를 리스트로 했더니 시간초과가 떠서 set으로 바꿔주었다. 자식노드의 번호는 이미 정해져있기 때문에 오리가 원하는 땅을 기준으로 위로 거슬러 올라갔다. 올라갈 때 부모 노드는 2로 나눈 값이기 때문이다. 거슬러 올라가기 때문에 처음 마주치는 점유된 땅은 코드 상으로는 가장 마지막에 만나는 값이다. 따라서 점유된 땅 번호를 계속 갱신시켜줘야 한다. 만약 num=0일 때, 즉 원하는 땅을 가질 수 있을 때는 v.. 2022. 3. 4. [백준][Python] 14675번 단절점과 단절선 14675번: 단절점과 단절선 프로그램의 입력은 표준 입력으로 받는다. 입력의 첫 줄에는 트리의 정점 개수 N이 주어진다. (2 ≤ N ≤ 100,000) 트리의 정점은 1번부터 n번까지 존재한다. 다음 줄부터 N-1개의 줄에 걸쳐 간선의 정 www.acmicpc.net 코드 import sys n = int(input()) tree = [[] for _ in range(n+1)] for _ in range(n-1): a,b = map(int,sys.stdin.readline().split()) tree[a].append(b) tree[b].append(a) q = int(input()) for _ in range(q): t,k = map(int,sys.stdin.readline().split()) if.. 2022. 3. 3. [백준][Python] 2581번 소수 2581번: 소수 M이상 N이하의 자연수 중 소수인 것을 모두 찾아 첫째 줄에 그 합을, 둘째 줄에 그 중 최솟값을 출력한다. 단, M이상 N이하의 자연수 중 소수가 없을 경우는 첫째 줄에 -1을 출력한다. www.acmicpc.net 코드 a = int(input()) b = int(input()) n_list = [] for i in range(a,b+1): if i == 2: n_list.append(i) else: for j in range(2,i): if i%j == 0: break elif j == i-1: n_list.append(i) sum = 0 if n_list: for i in n_list: sum += i print(sum) print(n_list[0]) else: print(-1) 2022. 3. 3. [백준][Python] 5639번 이진 검색 트리 5639번: 이진 검색 트리 트리를 전위 순회한 결과가 주어진다. 노드에 들어있는 키의 값은 106보다 작은 양의 정수이다. 모든 값은 한 줄에 하나씩 주어지며, 노드의 수는 10,000개 이하이다. 같은 키를 가지는 노드는 없다 www.acmicpc.net 코드 import sys sys.setrecursionlimit(10**6) num_list = [] while True: try: num = int(input()) num_list.append(num) except: break def postorder(first,end): if first > end: return mid = end+1 # 루트보다 큰 값이 존재하지 않을 경우를 대비 for i in range(first+1,end+1): if num.. 2022. 3. 1. 이전 1 ··· 50 51 52 53 54 55 56 ··· 63 다음 반응형