카테고리 없음
파이썬) 스위치 켜고 끄기 - BOJ
1일1공부실천하자
2023. 10. 23. 21:57
https://www.acmicpc.net/problem/1244
1244번: 스위치 켜고 끄기
첫째 줄에는 스위치 개수가 주어진다. 스위치 개수는 100 이하인 양의 정수이다. 둘째 줄에는 각 스위치의 상태가 주어진다. 켜져 있으면 1, 꺼져있으면 0이라고 표시하고 사이에 빈칸이 하나씩
www.acmicpc.net
n = int(input())
arr = list(map(int, input().split()))
arr = [-1] + arr
m = int(input())
stu = []
def male(num):
for i in range(1, n+1):
if i % num == 0:
if arr[i] == 1:
arr[i] = 0
else:
arr[i] = 1
def female(num):
if arr[num] == 1:
arr[num] = 0
else:
arr[num] = 1
left = num - 1
right = num + 1
while left > 0 and right <= n:
if arr[left] == arr[right]:
if arr[left] == 1:
arr[left] = 0
arr[right] = 0
else:
arr[left] = 1
arr[right] = 1
left -= 1
right += 1
else:
break
for i in range(m):
sex, num = map(int, input().split())
if sex == 1:
male(num)
else:
female(num)
for i in range(1, len(arr)):
if i > 0 and i % 20 == 0:
print(arr[i])
else:
print(arr[i], end=' ')
사실 문제 이해만 조금 어려운 구현문제였다.
인덱스가 1부터 시작이기 때문에 arr의 맨 왼쪽에 -1을 더해주었다.