t = int(input())
g = [list(input()) for _ in range(t)]
def rotate1(num, dirt):
num -= 1
d = [0] * t
d[num] = dirt
i = num
while i > 0:
if g[i][6] == g[i-1][2]:
d[i-1] = 0
break
else:
d[i-1] = d[i] * (-1)
i-= 1
j = num
while j < t-1:
if g[j][2] == g[j+1][6]:
d[j+1] = 0
break
else:
d[j+1] = d[j] * (-1)
j += 1
return d
def rotate2(d, g):
for i in range(t):
tmp = g[i]
if d[i] == 0:
continue
for j in range(8):
g[i][j] = tmp[(j - d[i]) % 8]
return g
k = int(input())
for _ in range(k):
num, dirt = map(int, input().split())
d = rotate1(num, dirt)
g = rotate2(d, g)
cnt = 0
for i in range(t):
if g[i][0] == '1':
cnt += 1
print(cnt)
이거.., 진짜 왜 틀림...?
t = int(input())
g = [list(input()) for _ in range(t)]
def rotate1(num, dirt):
num -= 1
d = [0] * t
d[num] = dirt
u = num
while u > 0:
if g[u][6] == g[u-1][2]:
d[u-1] = 0
break
else:
d[u-1] = d[u] * (-1)
u-= 1
v = num
while v < t-1:
if g[v][2] == g[v+1][6]:
d[v+1] = 0
break
else:
d[v+1] = d[v] * (-1)
v += 1
return d
def rotate2(d, g):
for i in range(t):
if d[i] == 0:
continue
if d[i] == 1:
tmp = g[i][7]
for j in range(7):
g[i][j+1] = g[i][j]
g[i][0] = tmp
if d[i] == -1:
tmp = g[i][0]
for j in range(1, 8):
g[i][j-1] = g[i][j]
g[i][7] = tmp
return g
k = int(input())
for _ in range(k):
num, dirt = map(int, input().split())
d = rotate1(num, dirt)
g = rotate2(d, g)
cnt = 0
for i in range(t):
if g[i][0] == '1':
cnt += 1
print(cnt)
진ㅉㅏ 왜...?
t = int(input())
g = [list(input()) for _ in range(t)]
def rotate1(num, drt):
num -= 1
d = [0] * t
d[num] = drt
u = num
while u > 0:
if g[u][6] == g[u-1][2]:
d[u-1] = 0
break
else:
d[u-1] = d[u] * (-1)
u-= 1
v = num
while v < t-1:
if g[v][2] == g[v+1][6]:
d[v+1] = 0
break
else:
d[v+1] = d[v] * (-1)
v += 1
return d
def rotate2(d, g):
for i in range(t):
if d[i] == 0:
continue
if d[i] == 1:
tmp = g[i][7]
for j in range(7, 0, -1):
g[i][j] = g[i][j-1]
g[i][0] = tmp
if d[i] == -1:
tmp = g[i][0]
for j in range(0, 7):
g[i][j] = g[i][j+1]
g[i][7] = tmp
return g
k = int(input())
for _ in range(k):
num, drt = map(int, input().split())
d = rotate1(num, drt)
g = rotate2(d, g)
cnt = 0
for i in range(t):
if g[i][0] == '1':
cnt += 1
print(cnt)
결국 풀긴 함.
각 톱니의 방향을 먼저 구하고 -> 각 행마다 방향대로 돌린다