본문 바로가기

전체 글134

[Recursive] 1991 트리순회 https://www.acmicpc.net/problem/1991 1991번: 트리 순회 첫째 줄에는 이진 트리의 노드의 개수 N(1 ≤ N ≤ 26)이 주어진다. 둘째 줄부터 N개의 줄에 걸쳐 각 노드와 그의 왼쪽 자식 노드, 오른쪽 자식 노드가 주어진다. 노드의 이름은 A부터 차례대로 알파 www.acmicpc.net # 2023.01.02 import sys input = sys.stdin.readline n = int(input()) graph = {} for i in range(n): a, b, c = map(str, input().split()) graph[a]=(b, c) def preorder(node): if node!='.': print(node, end="") preorder(grap.. 2023. 1. 2.
[DP] 1932 정수 삼각형 https://www.acmicpc.net/problem/1932 1932번: 정수 삼각형 첫째 줄에 삼각형의 크기 n(1 ≤ n ≤ 500)이 주어지고, 둘째 줄부터 n+1번째 줄까지 정수 삼각형이 주어진다. www.acmicpc.net # 2023.01.01 import sys input = sys.stdin.readline n = int(input()) triangle=[list(map(int, input().split())) for _ in range(n)] for i in range(n-1, -1, -1): for j in range(i): triangle[i-1][j]+=max(triangle[i][j], triangle[i][j+1]) print(triangle[0][0]) 위에서 아래로 내.. 2023. 1. 2.
[Divide and Conquer] 1629 곱셈 https://www.acmicpc.net/problem/1629 1629번: 곱셈 첫째 줄에 A, B, C가 빈 칸을 사이에 두고 순서대로 주어진다. A, B, C는 모두 2,147,483,647 이하의 자연수이다. www.acmicpc.net # 2023.01.01 import sys input = sys.stdin.readline a, b, c = map(int, input().split()) def DAC(a, b, c): if b==1: return a%c if b%2==0: return (DAC(a, b//2, c)**2)%c elif b%2==1: return ((DAC(a, b//2, c)**2)*a)%c print(DAC(a, b, c)) 1. b==1일때 a 2. b는 짝수일때 DAC*.. 2023. 1. 1.
[DP] 1149 RGB거리 https://www.acmicpc.net/problem/1149 1149번: RGB거리 첫째 줄에 집의 수 N(2 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 각 집을 빨강, 초록, 파랑으로 칠하는 비용이 1번 집부터 한 줄에 하나씩 주어진다. 집을 칠하는 비용은 1,000보다 작거나 www.acmicpc.net # 2023.01.01 import sys input = sys.stdin.readline n = int(input()) RGB = [list(map(int, input().split())) for _ in range(n)] dp=[[0]*(n) for _ in range(n)] dp[0][0]=RGB[0][0] #red dp[0][1]=RGB[0][1] #green dp[0.. 2023. 1. 1.