Home

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

1. 문제 https://www.acmicpc.net/problem/1991 2. 풀이 python의 딕셔너리를 이용하여 문제를 해결합니다. 아래의 순서를 지키면서 문제를 해결합니다. 전위순회 (Pre-order) : Root -> 왼쪽 subtree -> 오른쪽 subtree 중위순회 (in-order) : 왼쪽 subtree -> Root -> 오른쪽 subtree 후위순회 (post-order) : 왼쪽 subtree -> 오른쪽 subtree -> Root n = int(input()) dic = {} arr = [] for _ in range(n): ...

Read more

[백준] 2630번 색종이 만들기 _ 문제 풀이

1. 문제 https://www.acmicpc.net/problem/2630 2. 풀이 재귀함수를 통해서 쉽게 문제를 해결할 수 있습니다. blue_paper, white_paper = 0, 0 N = int(input()) arr = [ list(map(int, input().split())) for _ in range(N) ] ## 재귀 함수 -> 정해진 구역의 값이 다 동일한지 확인 def is_one_paper(size, row, col): global blue_paper, white_paper base = arr[row][col] for r in range(row, ro...

Read more

[백준] 11866번 요세푸스 문제 0 _ 문제 풀이

1. 문제 https://www.acmicpc.net/problem/11866 2. 풀이 queue를 이용하면 쉽게 문제를 해결할 수 있다. from collections import deque N, K = map(int, input().split()) answer = [] queue = deque([x + 1 for x in range(N)]) while len(queue): for _ in range(K): queue.append(str(queue.popleft())) answer.append(queue.pop()) print('<%s>' % ', '.joi...

Read more

[프로그래머스] 행렬의 덧셈 문제 풀이

1. 문제 https://programmers.co.kr/learn/courses/30/lessons/12950 2. 풀이 def solution(arr1, arr2): row, col = len(arr1), len(arr1[0]) answer = [ [0] * col for _ in range(row) ] for r in range(row): for c in range(col): answer[r][c] = arr1[r][c] + arr2[r][c] return answer

Read more

[프로그래머스] 콜라츠 추측 문제 풀이

1. 문제 https://programmers.co.kr/learn/courses/30/lessons/12943 2. 풀이 def solution(num): try_num = 0 while try_num < 500: if num == 1: return try_num if num % 2 == 0 : num /= 2 elif num % 2 == 1 : num = num * 3 + 1 try_num += 1 return -1

Read more