1992번: 쿼드트리
첫째 줄에는 영상의 크기를 나타내는 숫자 N 이 주어진다. N 은 언제나 2의 제곱수로 주어지며, 1≤N ≤64의 범위를 가진다. 두 번째 줄부터는 길이 N 의 문자열이 N 개 들어온다. 각 문자열은 0 또는
www.acmicpc.net
<내 코드>
n = int(input())
video = [list(input()) for _ in range(n)]
def divide(x, y, n):
ans = []
check = True
color = video[x][y]
for i in range(x, x+n):
if not check:
break
for j in range(y, y+n):
if color != video[i][j]:
check = False
ans.append("(")
ans.extend(divide(x, y, n//2))
ans.extend(divide(x, y+n//2, n//2))
ans.extend(divide(x+n//2, y, n//2))
ans.extend(divide(x+n//2, y+n//2, n//2))
ans.append(")")
return ans
return color
print("".join(divide(0, 0, n)))
list.append와 list.extend의 차이에 대해 알게 됐다.
a = [1, 2, 3]
b = [4, 5, 6]
a.append(b)
print(a) # [1, 2, 3, [4, 5, 6]]
a = [1, 2, 3]
b = [4, 5, 6]
a.extend(b)
print(a) # [1, 2, 3, 4, 5, 6]
append는 해당 리스트(b) 그 자체를 리스트(a) 끝에 넣어준다. 반면에 extend는 해당 리스트(b) 안의 요소들을 (a)리스트 끝에 넣어 확장시켜준다.
'알고리즘 문제풀기 > 백준 - Python' 카테고리의 다른 글
[백준 10866] 덱 - Python (Deque) (0) | 2021.05.20 |
---|---|
[백준 7568] 덩치 - Python (브루트포스) (0) | 2021.05.17 |
[백준 2630] 색종이 만들기 - Python (분할정복, 재귀) (0) | 2020.11.24 |
[백준 14889] 스타트와 링크 - Python (브루트포스, 백트래킹) (0) | 2020.11.02 |
[백준 14888] 연산자 끼워넣기 - Python (백트래킹, DFS, 브루트포스) (0) | 2020.10.27 |