문제
1244번 - 스위치 켜고 끄기
문제 해결 과정
- 학생과 자연수를 받을 때마다 여학생인지 남학생인지 확인 후 스위치 상태 바꾸기
- 여자일 경우 조건을 잘 보고 바꾸기
시행착오
- 여학생 조건에서 시간이 많이 걸림
for j in range(1,n//2+1):
여기서 1을 더해주지 않아서 계속 틀렸음 범위를 잘 생각하자
if num-1-j >= 0 and num-1+j < n:
인덱스 조건을 벗어나서 에러가 났음 조건을 잘 명시해주자
else: break
처리를 안해줘서 에러가 났음 break문을 잘 설정해두자
- 20개씩 출력하는 부분에서 이상하게 머리가 안돌아갔음 나눠서 출력하는 부분은 외워두자 출력하는 방법은 여러개이겠지만 우선은 이걸로 함
import sys
n = int(sys.stdin.readline())
switch = list(map(int,sys.stdin.readline().split()))
student = int(sys.stdin.readline())
for _ in range(student):
s, num = map(int,sys.stdin.readline().split())
if s == 1:
for i in range(1,n//num+1):
if switch[i*num-1] == 1:
switch[i*num-1] = 0
else:
switch[i*num-1] = 1
if s == 2:
if switch[num-1] == 1:
switch[num-1] = 0
else:
switch[num-1] = 1
for j in range(1,n//2+1):
if num-1-j >= 0 and num-1+j < n:
if switch[num-1+j] == switch[num-1-j]:
if switch[num-1+j] == 0:
switch[num-1+j] = 1
switch[num-1-j] = 1
else:
switch[num-1+j] = 0
switch[num-1-j] = 0
else:
break
for i in range(len(switch)):
if i != 0 and i % 20 == 0:
print("")
print(switch[i], end=" ")
else:
print(switch[i], end=" ")