๐๋ฌธ์
https://www.acmicpc.net/problem/1992
๐์ด๋ค ์๊ณ ๋ฆฌ์ฆ?
1. ์ผ์ชฝ ์, ์ค๋ฅธ์ชฝ ์, ์ผ์ชฝ ์๋, ์ค๋ฅธ์ชฝ ์๋ ์ด 4๊ฐ์ ์์ญ์ ์์ถํ๋ค๋ ๋ถ๋ถ์์ ๋ถํ ์ ๋ณต, ์ฌ๊ท ์๊ณ ๋ฆฌ์ฆ์์ ๊นจ๋ฌ์๋ค.
๐ป์ฝ๋
# 1992 ์ฟผ๋ํธ๋ฆฌ
# 3. ์์ ์์ถ ํฉ์ ๋ง๋ค๊ธฐ
# x: ์ธ๋ก, y: ๊ฐ๋ก
def compress(x,y,n):
start = video[x][y] # ์์ ์ง์ ์ ์ ์ ์ฅํด๋๊ธฐ
for i in range(x,x+n):
for j in range(y,y+n):
if video[i][j] != start: # ๋ค๋ฅธ์ ๋์ค๋ฉด
start = -1
break
if start == -1:
print('(',end='')
div_n = n//2 # 4๊ฐ์ ์์์ผ๋ก ๋๋๊ธฐ
# 4 ๋ถ๋ถ ๋ชจ๋ ์ฌ๊ท๋ก ํ์ธ
compress(x,y,div_n) # 1๋ฒ์งธ ์์ญ (0,0)
compress(x,y+div_n,div_n) # 2๋ฒ์งธ ์์ญ (0,1)
compress(x+div_n,y,div_n) # 3๋ฒ์งธ ์์ญ (1,0)
compress(x+div_n,y+div_n,div_n) #4๋ฒ์งธ ์์ญ (1,1)
print(')',end='')
elif start == 1:
print(1,end='')
else:
print(0,end='')
# 1. ์์ ํฌ๊ธฐ ์
๋ ฅ ๋ฐ๊ธฐ
n = int(input())
# 2. ์์ ์
๋ ฅ ๋ฐ๊ธฐ
video = []
for i in range(n):
video.append(list(map(int,input())))
result = [] # ์์ถ ๊ฒฐ๊ณผ ์ ์ฅ ๋ณ์
# 4. ์์ ์์ถ
compress(0,0,n)
๐์ฝ๋ ์ค๋ช
1. ๋ถํ ์ ๋ณต ๋ฌธ์ ๋ฅผ ๋ช๋ฒ ํ์ด๋ณด๋ฉด, ์ด ์๊ณ ๋ฆฌ์ฆ์ ์ด๋์ ๋ ํ์ด ์กํ์๋ค๋ ๊ฒ์ ์ ์ ์๋ค. ๊ตฌ์กฐ๋ฅผ ์ธ์๋์
2. ์์์ง์ ์ ์์ ์ ์ฅํด๋๊ณ , 2์ค for๋ฌธ์ ๋ชจ๋ ๋๋ฉด์ ๋ชจ๋ ๊ฐ์ ์์ธ์ง, ๋ค๋ฅธ ์์ด ์๋์ง ํ๋จ์ ๋จผ์ ํ๋ค.
3. ๋ค๋ฅธ ์์ด ์์ ๊ฒฝ์ฐ 4๊ฐ์ ์์ญ์ผ๋ก ๋๋ ์ ๊ฐ๊ฐ ์ฌ๊ท์ ์ผ๋ก 4๊ฐ์ ์์ญ์ ๋ค๋ฅธ์์ด ์๋์ง๋ฅผ ํ๋จํ๋ ๊ฒ์ ๋ฐ๋ณตํ๋ค.
'Algorithm > ๋ฐฑ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค] 1463 1๋ก ๋ง๋ค๊ธฐ (ํ์ด์ฌ/python) dp, bfs (0) | 2023.08.03 |
---|---|
[๋ฐฑ์ค] 7576 ํ ๋งํ (ํ์ด์ฌ/python) (0) | 2023.08.02 |
[๋ฐฑ์ค] 12904 A์ B (ํ์ด์ฌ/python) (0) | 2023.07.11 |
[๋ฐฑ์ค] 7562 ๋์ดํธ์ ์ด๋ (ํ์ด์ฌ/python) (0) | 2023.07.11 |
[๋ฐฑ์ค] 1697 ์จ๋ฐ๊ผญ์ง (ํ์ด์ฌ/python) (0) | 2023.06.20 |