문제
알고리즘
- 반복문을 통해 스위치 상태를 변경한다.
- 남학생의 경우와 여학생의 경우를 나누어 조건에 맞게 스위치를 변경해준다.
- 스위치를 변경 후 상태를 20개씩 출력한다.
코드
import sys
n = int(sys.stdin.readline())
state = ["제로"] + list(map(int, sys.stdin.readline().split()))
p = int(sys.stdin.readline())
# 반복문을 통해 스위치 상태를 변경
for i in range(p):
# 성별, 학생이 받은 수
sex, idx = map(int, sys.stdin.readline().split())
# 남학생
if sex == 1:
plus = idx
while plus <= n:
state[plus] = abs(state[plus] - 1)
plus += idx
# 여학생
else:
total = min(n + 1 - idx, idx)
state[idx] = abs(state[idx] - 1)
for j in range(total):
if state[idx - j] == state[idx + j]:
state[idx - j] = abs(state[idx - j] - 1)
state[idx + j] = abs(state[idx + j] - 1)
else:
break
# 20개씩 출력
for i in range(1, n + 1):
print(state[i], end=" ")
if i % 20 == 0:
print("")
github
'CodingTest > Baekjoon' 카테고리의 다른 글
[baekjoon] 백준 1448번(파이썬): 삼각형 만들기 (0) | 2022.04.16 |
---|---|
[baekjoon] 백준 1431번(파이썬): 시리얼 번호 (0) | 2022.04.15 |
[baekjoon] 백준 1057번(파이썬): 토너먼트 (0) | 2022.04.13 |
[baekjoon] 백준 1052번(파이썬): 물통 (0) | 2022.04.12 |
[baekjoon] 백준 1051번(파이썬): 숫자 정사각형 (0) | 2022.04.11 |