💡문제접근
- 간단한 시뮬레이션 문제였는데 잦은
IndexError
와 WA
때문에 많이 시간을 허비했던 문제였다. 풀긴 풀었지만 오랜 시간이 걸려서 해결했다는 부분에서 많이 아쉬움을 느꼈던 문제였다.
💡코드(메모리 : 31256KB, 시간 : 40ms)
import sys
input = sys.stdin.readline
S = int(input())
switch = [-1] + list(map(int, input().strip().split()))
student = int(input())
for _ in range(student):
sex, num = map(int, input().strip().split())
if sex == 1:
for i in range(num, S+1, num):
if switch[i] == 1:
switch[i] = 0
else:
switch[i] = 1
else:
if switch[num] == 1:
switch[num] = 0
else:
switch[num] = 1
for i in range(S // 2):
if num + i > S or num - i < 1:
break
if switch[num + i] == switch[num - i]:
if switch[num + i] == 1:
switch[num + i] = 0
else:
switch[num + i] = 1
if switch[num - i] == 1:
switch[num - i] = 0
else:
switch[num - i] = 1
else:
break
for i in range(1, S+1):
print(switch[i], end = " ")
if i % 20 == 0:
print()
💡소요시간 : 1h 12m