-
백준 1992 파이썬 | 쿼드트리알고리즘 BOJ 2021. 12. 27. 08:18
코드
n = int(input()) lst = [] for _ in range(n): lst.append(list(map(int, input()))) def quad(x, y, N): one = lst[x][y] for i in range(x, x+N): for j in range(y, y+N): if one != lst[i][j]: print("(", end="") quad(x, y, N//2) quad(x, y+N//2, N//2) quad(x+N//2, y, N//2) quad(x+N//2, y+N//2, N//2) print(")", end="") return if one == 0: print(0, end="") else: print(1, end="") quad(0, 0, len(lst))
설명
https://con2joa.tistory.com/25
백준 2630 파이썬 | 색종이 만들기
코드 import sys N = int(sys.stdin.readline()) paper = [list(map(int, sys.stdin.readline().split())) for _ in range(N)] result = [] def solution(x, y, N) : color = paper[x][y] for i in range(x, x+N)..
con2joa.tistory.com
이걸로 푼 문제와 거의 유사하다. 아니 그냥 똑같다. 오랜만에 다시 푸니까 못 풀었다. 다 잊어버렸나보다. 접근은 비슷하게 했는데 코드를 제대로 구현하지는 못 했다.
문제 이름에서 알 수 있듯이 쿼드트리를 이용하는 문제이다. 문제 해결을 위해 색종이 만들기 문제의 틀을 그대로 따왔다. 색종이 만들기 문제와 다른 점은 quad() 함수 안에서 print 를 작성해줘야 하는 부분이다.
쿼드트리 알고리즘을 기억하려면 함수의 인자로 x, y, n 을 쓰는 걸 기억하면 좋겠다.
메모리: 29452 KB
시간: 76 ms
문제
https://www.acmicpc.net/problem/1992
1992번: 쿼드트리
첫째 줄에는 영상의 크기를 나타내는 숫자 N 이 주어진다. N 은 언제나 2의 제곱수로 주어지며, 1 ≤ N ≤ 64의 범위를 가진다. 두 번째 줄부터는 길이 N의 문자열이 N개 들어온다. 각 문자열은 0 또
www.acmicpc.net
'알고리즘 BOJ' 카테고리의 다른 글
백준 1001 파이썬 | A-B (0) 2022.02.09 백준 1000 파이썬 | A+B (0) 2022.02.09 백준 2579 파이썬 | 계단 오르기 (0) 2021.09.03 백준 2606 파이썬 | 바이러스 (0) 2021.09.03 백준 2630 파이썬 | 색종이 만들기 (0) 2021.09.02