접근 방법 : 단순 구현
정말 멘탈 많이 흔들린 문제였다.
예외처리를 제대로 해주지 않아 계속 틀린 문제였고, 예외처리하는 스킬을 얻어 갈 수 있었다.
그리고 문제를 좀 끝까지 제대로 읽자...
import sys
from collections import deque
n = int(sys.stdin.readline())
board = [-1] + list(map(int, sys.stdin.readline().strip().split()))
c = int(sys.stdin.readline())
case = deque([])
for _ in range(c):
input_case = list(map(int , sys.stdin.readline().strip().split()))
case.append(input_case)
while case:
sex, num = case.popleft()
if sex == 1:
for i in range(1, n + 1):
if i % num == 0:
if board[i] == 1:
board[i] = 0
else:
board[i] = 1
else:
if board[num] == 1:
board[num] = 0
else:
board[num] = 1
for i in range(1, n):
# 앞으로는 예외처리하는 식을 break 처리 하는 걸로..
if num + i > n or num - i < 1 :
break
if board[num + i] == board[num - i]:
if board[num + i] == 1:
board[num + i] = board[num - i] = 0
else:
board[num + i] = board[num - i] = 1
else:
break
for i in range(1, n + 1):
print(board[i], end=" ")
if i % 20 == 0:
print()