[Baekjoon/๐ฅSilverโ ก] 1780: ์ข ์ด์ ๊ฐ์
Intro
-
์ข ์ด๊ฐ ๋ชจ๋ ๋์ผํ ์๋ก ์ด๋ฃจ์ด์ก์ ๋, ํด๋น ์์ ์ข ์ด ๊ฐ์๋ฅผ 1 ์ฆ๊ฐ์ํจ๋ค.
- ์ข
์ด๊ฐ ์๋ก ๋ค๋ฅธ ์๋ก ์ด๋ฃจ์ด์ ธ ์๋ค๋ฉด 9๋ฑ๋ถ์ ํ ํ ์์ ๊ณผ์ ์ ๋ฐ๋ณตํ๋ค.
- ์ฌ๊ท์ ์ผ๋ก ๊ตฌํํ๋ค. (๋ถํ ์ ๋ณต ์ฌ์ฉ!)
- ์ต์ข ์ ์ผ๋ก -1, 0, 1๋ก๋ง ์ฑ์์ง ์ข ์ด์ ๊ฐ์๋ฅผ ๊ฐ๊ฐ ์ถ๋ ฅํ๋ค.
Algoritm๐ฉโ๐ป
#21.01.24
#1780: ์ข
์ด์ ๊ฐ์
import sys
# ์ข
์ด ์์ ์ขํ(x, y)
# ์ข
์ด ๋ ์ขํ(s-1, e-1)
def check(paper, l, x, y, s, e):
key = paper[x][y]
if l == 1:
dic[key] += 1
return
else:
for i in range(x, s):
for j in range(y, e):
if key != paper[i][j]:
l //= 3
for k in range(x, s, l):
for m in range(y, e, l):
check(paper, l, k, m, k+l, m+l)
return
dic[key] += 1
return
N = int(sys.stdin.readline())
paper = []
dic = {-1: 0, 0: 0, 1: 0}
for _ in range(N):
lst = list(map(int, sys.stdin.readline().split()))
paper.append(lst)
check(paper, N, 0, 0, N, N)
print(f'{dic[-1]}\n{dic[0]}\n{dic[1]}')
์ฌ๊ธฐ์ ์ ๊น!!๐โโ๏ธ: f-string ํฌ๋งคํ
- fโ๋ฌธ์์ด {๋ณ์} ๋ฌธ์์ด..โ ํํ๋ก ๋ณ์๊ฐ๊ณผ ๋ฌธ์์ด์ ํ ๋ฒ์ ์ถ๋ ฅ ๊ฐ๋ฅํ๋ค.
์ฐธ๊ณ ๐
์ด๋ฒ ํฌ์คํ ์ ์ฌ๊ธฐ์
๋!! ~(หโพห~)
๋๊ธ๋จ๊ธฐ๊ธฐ