Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- graph
- JavaScript
- sorting
- 따라하며 배우는 C언어
- DP
- Cleancode
- udemy
- php
- programmers
- 백준
- 생활코딩
- 따라하면서 배우는 C언어
- Algospot
- C
- BOJ
- server
- 따배씨
- BFS
- 인프런
- String
- 정수론
- 종만북
- Math
- dfs
- greedy
- web
- C언어
- Python
- Algorithm
- BASIC
Archives
- Today
- Total
몽상실현개발주의
[BOJ] 1780 / 종이의 개수 / Python 파이썬 본문
[BOJ] 1780 / 종이의 개수 / Python 파이썬
https://www.acmicpc.net/problem/1780
풀이
[BOJ] 1992 / 쿼드트리 문제의 심화 문제이다.
쿼드트리에서는 주어진 2차원 배열을 2x2 분할 하였다면, 이번 문제에서는 3x3으로 분할 하여 해결 하였다.
import sys
input = sys.stdin.readline
N = int(input())
maps = []
for _ in range(N):
maps.append(input().split())
cntDic = {"-1": 0, "0": 0, "1": 0}
def DFS(y, x, n):
if n == 1:
cntDic[maps[y][x]] += 1
return
for i in range(y, y+n):
for j in range(x, x+n):
if maps[y][x] != maps[i][j]:
DFS(y, x, n//3)
DFS(y, x+n//3, n//3)
DFS(y, x+(n//3*2), n//3)
DFS(y+n//3, x, n//3)
DFS(y+n//3, x+n//3, n//3)
DFS(y+n//3, x+(n//3*2), n//3)
DFS(y+(n//3*2), x, n//3)
DFS(y+(n//3*2), x+n//3, n//3)
DFS(y+(n//3*2), x+(n//3*2), n//3)
return
cntDic[maps[y][x]] += 1
return
DFS(0, 0, N)
print(cntDic["-1"])
print(cntDic["0"])
print(cntDic["1"])
'Algorithm PS > BOJ' 카테고리의 다른 글
[BOJ] 2447 / 별 찍기 - 10 / Python 파이썬 (0) | 2021.06.28 |
---|---|
[BOJ] 11729 / 하노이 탑 이동 순서 / Python 파이썬 (0) | 2021.06.23 |
[BOJ] 1992 / 쿼드트리 / Python 파이썬 (0) | 2021.06.21 |
[BOJ] 11728 / 배열 합치기 / Python 파이썬 (0) | 2021.06.21 |
[BOJ] 10816 / 숫자 카드 2 / Python 파이썬 (0) | 2021.06.19 |
Comments