개의 전구가 있고 맨 왼쪽에 있는 전구를 첫 번째라고 하자. 전구의 상태는 두 가지가 있으며 이를 숫자로 표현한다.
은 전구가 켜져 있는 상태를 의미하고, 은 전구가 꺼져 있는 상태를 의미한다.
전구를 제어하는 명령어가 1번부터 4번까지 4개가 있다. 아래 표는 각 명령어에 대한 설명이다.
첫 번째 줄에 전구의 개수 와 입력되는 명령어의 개수 이 주어진다.
두 번째 줄에는 개의 전구가 현재 어떤 상태 인지 주어진다. (은 꺼져있는 상태, 은 켜져있는 상태)
번째 줄부터 번째 줄까지 세 개의 정수 가 들어온다.
는 번째 명령어를 의미하고 는 가 1인 경우는 각각 를 의미하고 가 중 하나면 각각 을 의미한다.
모든 명령어를 수행한 후 전구가 어떤 상태인지 출력한다.
import sys
sys.stdin = open ("input.txt", "rt")
input = sys.stdin.readline
n, m = map(int,input().split())
arr = list(map(int,input().split()))
for i in range(m):
a, b, c = map(int,input().split())
if a == 1:
arr[b-1] = c
else:
if a == 2:
for i in range(b-1,c):
if arr[i] == 0:
arr [i] = 1
else: arr[i] = 0
elif a == 3:
arr[b-1:c] = [0] * (c-b+1)
# 전구를 모두 끈 상태인 0으로 만들어 준다
else:
arr[b-1:c] = [1] * (c-b+1)
# 전구를 모두 켠 상태인 1로 만들어 준다
for i in arr:
print(i, end=" ")
``arr[b-1:c] = [0] * (c-b+1)``
이렇게 한번에 x 부터 y 까지의 값을 바꿔줄 수 있구나 !!