백준풀이 5

[백준]1991번 트리 순회 풀이

1991번: 트리 순회 첫째 줄에는 이진 트리의 노드의 개수 N(1 ≤ N ≤ 26)이 주어진다. 둘째 줄부터 N개의 줄에 걸쳐 각 노드와 그의 왼쪽 자식 노드, 오른쪽 자식 노드가 주어진다. 노드의 이름은 A부터 차례대로 알파 www.acmicpc.net [문제] [코드] import sys input = sys.stdin.readline N = int(input().strip()) #Dic 활용 해서 노드 구성 Tree = {} for i in range(N): node, left, right = input().strip().split() Tree[node] = [left, right] #input값 출력 print(Tree) ##전위 중위 후위 함수로 구현 def preorder(node): #전위..

[백준] 1326 폴짝폴짝 파이썬 풀이

1326번: 폴짝폴짝 첫째 줄에 징검다리의 개수 N(1≤N≤10,000)이 주어지고, 이어서 각 징검다리에 쓰여 있는 N개의 정수가 주어진다. 그 다음 줄에는 N보다 작거나 같은 자연수 a, b가 주어지는 데, 이는 개구리가 a번 www.acmicpc.net [문제] [코드] from collections import deque def bfs(start, finish, stone, n): q = deque() q.append(start - 1) visited = [-1] * n visited[start-1] = 0 while q: node = q.popleft() for i in range(n): if (i-node) % stone[node] == 0 and visited[i] == -1: q.appen..

[백준] 12018번 Yonsei TOTO 파이썬 풀이

12018번: Yonsei TOTO 연세대학교 수강신청이 얼마 전부터 바뀌어, 마일리지 제도로 바뀌었다. 이 제도는 각각의 학생들에게 마일리지를 주어 듣고 싶은 과목에 마일리지를 과목당 1~36을 분배한다. 그리고 모두 분배 www.acmicpc.net [문제] [코드] import sys input = sys.stdin.readline n,m = map(int, input().split()) result =[] for _ in range(n): p, l = map(int, input().split()) l_list = list(map(int,input().split())) l_list.sort(reverse=True) if p < l : result.append(1) else: result.append..

[백준] 9440번 숫자 더하기 파이썬 풀이

[문제] 9440번: 숫자 더하기 강민이가 초등학교 3학년일 때, 담임선생님이 이런 문제를 냈었다. 숫자 1, 2, 7, 8, 9 를 사용해서 만든 두 숫자를 더했을 때, 나올 수 있는 가장 작은 수는 무엇일까요? 강민이는 이 문제의 답이 2 www.acmicpc.net [코드] import sys input = sys.stdin.readline while True: num = list(map(int, input().split())) if num[0] == 0: break n = num[0] number = sorted(num[1:]) num1, num2 = str(), str() for i in range(n): if number[i] != 0: num1, num2 = str(number[i]), st..

[백준] 11724번 연결 요소의 개수 파이썬(Python) 풀이

11724번: 연결 요소의 개수 첫째 줄에 정점의 개수 N과 간선의 개수 M이 주어진다. (1 ≤ N ≤ 1,000, 0 ≤ M ≤ N×(N-1)/2) 둘째 줄부터 M개의 줄에 간선의 양 끝점 u와 v가 주어진다. (1 ≤ u, v ≤ N, u ≠ v) 같은 간선은 한 번만 주 www.acmicpc.net [문제] [코드] import sys sys.setrecursionlimit(100000) input = sys.stdin.readline def dfs(start, depth): visited[start] = True for i in graph[start]: if not visited[i]: dfs(i, depth + 1) n,m = map(int, input().split()) graph = [[]..