본문 바로가기
반응형

재귀7

[BOJ][Python]1005 풀이 https://www.acmicpc.net/problem/1005 1005번: ACM Craft 첫째 줄에는 테스트케이스의 개수 T가 주어진다. 각 테스트 케이스는 다음과 같이 주어진다. 첫째 줄에 건물의 개수 N과 건물간의 건설순서 규칙의 총 개수 K이 주어진다. (건물의 번호는 1번부 www.acmicpc.net import sys; ssr = sys.stdin.readline sys.setrecursionlimit(10000) def f(node): if dp_delay[node] == -1: results = [] for child in build[node]: child_delay = f(child) results.append(child_delay) dp_delay[node] = delays[no.. 2023. 11. 24.
[BOJ][Python]2448 풀이 https://www.acmicpc.net/problem/2448 2448번: 별 찍기 - 11 첫째 줄에 N이 주어진다. N은 항상 3×2k 수이다. (3, 6, 12, 24, 48, ...) (0 ≤ k ≤ 10, k는 정수) www.acmicpc.net def recur(n): if n == 3: return [' * ', ' * * ', '*****'] else: half = n//2 before = recur(half) result = ['' for _ in range(n)] for i in range(half): result[i] = ' '*(half) + before[i] + ' '*(half) for i in range(half, n): result[i] = before[i-half] + .. 2023. 8. 23.
[BOJ][Python]1991번 풀이 https://www.acmicpc.net/problem/1991 1991번: 트리 순회 첫째 줄에는 이진 트리의 노드의 개수 N(1 ≤ N ≤ 26)이 주어진다. 둘째 줄부터 N개의 줄에 걸쳐 각 노드와 그의 왼쪽 자식 노드, 오른쪽 자식 노드가 주어진다. 노드의 이름은 A부터 차례대로 알파 www.acmicpc.net from string import ascii_uppercase import sys ssr = sys.stdin.readline def preorder(v): global ans if visited[v] == 1: return visited[v] = 1 ans += str(v) for i in edges: if i[0] == v: for j in range(1,3): if i[j] != .. 2022. 7. 29.
[BOJ][Python]1992번 풀이 https://www.acmicpc.net/problem/1992 1992번: 쿼드트리 첫째 줄에는 영상의 크기를 나타내는 숫자 N 이 주어진다. N 은 언제나 2의 제곱수로 주어지며, 1 ≤ N ≤ 64의 범위를 가진다. 두 번째 줄부터는 길이 N의 문자열이 N개 들어온다. 각 문자열은 0 또 www.acmicpc.net import sys ssr = sys.stdin.readline def sol(r,c,l): global ans check = t[r][c] for i in range(r,r+l): for j in range(c,c+l): if t[i][j] != check: ans += '(' sol(r,c,l//2) sol(r,c+l//2,l//2) sol(r+l//2,c,l//2) sol(r+l.. 2022. 7. 1.
[BOJ][Python]1780번 풀이 https://www.acmicpc.net/problem/1780 1780번: 종이의 개수 N×N크기의 행렬로 표현되는 종이가 있다. 종이의 각 칸에는 -1, 0, 1 중 하나가 저장되어 있다. 우리는 이 행렬을 다음과 같은 규칙에 따라 적절한 크기로 자르려고 한다. 만약 종이가 모두 같은 수 www.acmicpc.net import sys ssr = sys.stdin.readline def sol(r,c,l): tmp = p[r][c] for i in range(r,r+l): for j in range(c,c+l): if tmp != p[i][j]: le = l//3 for k in range(3): for h in range(3): sol(r+k*le,c+h*le,le) return if tmp ==.. 2022. 6. 28.
[BOJ][Python]2630번 풀이 https://www.acmicpc.net/problem/2630 2630번: 색종이 만들기 첫째 줄에는 전체 종이의 한 변의 길이 N이 주어져 있다. N은 2, 4, 8, 16, 32, 64, 128 중 하나이다. 색종이의 각 가로줄의 정사각형칸들의 색이 윗줄부터 차례로 둘째 줄부터 마지막 줄까지 주어진다. www.acmicpc.net import sys ssr = sys.stdin.readline def sol(r,c,length): global paper_cnt, blue_cnt std = 0 color_cnt = 0 for i in range(r,r+length): for j in range(c,c+length): std += 1 color_cnt += b[i][j] if std == color_.. 2022. 6. 13.
[BOJ][Python]5956번 풀이 또 한동안 바빠서 못왔었는데요. 이제는 큰 불은 꺼서 다시 정기적으로 포스팅을 할 수 있을 것 같습니다. 최근에 백트래킹 공부를 계속 했었는데요. 제가 재귀 프로그래밍을 잘 못하다 보니 아이디어는 떠올라도 구현을 못하는 일이 비일비재하길래 재귀 구현 연습을 해야겠다는 생각이 들었습니다. 오늘 문제도 그 중 하나가 되겠네요. 문제 링크 : https://www.acmicpc.net/problem/5956 5956번: Symmetry Farmer John loves symmetry and is currently arranging his cows on his field partitioned into an N x M (1 2021. 12. 18.
반응형