링크
백준 1244 스위치켜고끄기
문제를 풀면서 내가 얼마나 꼼꼼하지 못한 사람인지 느꼈다.
푸를 방법을생각하는 것 자체는 쉬워서 금방 구현했으나 조건을 자세히 주지 못해 수많은 인덱스 에러를 만났다..
남성일때의 코드는 인덱스에러가날 여지가 적었고 여성일때의 코드에서 인덱스 에러가 발생했다.
그리고 값이 20개 초과일시 출력을 20개씩 끊어서 해야했는데 바보처럼 이부분에서도 꽤 헤맸다.
N = int(input())
bit = list(map(int, input().split()))
S = int(input())
for _ in range(S):
gender, switch = map(int, input().split())
if gender == 1:
for i in range(1, (len(bit) // switch) + 1):
if bit[(switch * i) - 1] == 0:
bit[(switch * i) - 1] = 1
else:
bit[(switch * i) - 1] = 0
if gender == 2:
if bit[(switch - 1)] == 0:
bit[(switch - 1)] = 1
else:
bit[(switch - 1)] = 0
l = switch - 2
r = switch
while l >= 0 and r < N and bit[l] == bit[r]:
if bit[l] == 0:
bit[l], bit[r] = 1, 1
elif bit[l] == 1:
bit[l], bit[r] = 0, 0
l -= 1
r += 1
if l < 0 or r >= N:
break
cnt = 0
ans = ''
for i in range(N):
ans += (str(bit[i]) + ' ')
cnt += 1
if cnt == 20:
print(ans)
ans = ''
cnt = 0
if len(ans) != 0:
print(ans)