새소식

반응형
Algotithms

[백준] 21918 전구

  • -
728x90
반응형

문제

  • N개의 전구가 있고 1은 켜진 상태, 0은 꺼진 상태를 의미한다.
  • 전구를 제어하는 명령어가 주어질 때, 주어진 명령어를 수행한 결과 출력하기
  • [1 i x] i번째 전구 상태를 x로 변경
    [2 l r] l~r번 전구 상태 토글
    [3 l r] l~r번 전구 끄기
    [4 l r] l~r번 전구 키기

 

  • 1 <= N, M <= 4000
    1 <= l <= r <= N

 

풀이

  • 입력받은 명령어에 따라 작업을 수행하면 된다.
  • 토글 : 1 -> 0 ; 0 -> 1 변화를 abs(s-1)로 표현한다.

 

N, M = map(int, input().split())
status = [0] + list(map(int, input().split()))
for _ in range(M) :
    a, b, c = map(int, input().split())
    if a == 1 :     # b번째 전구를 상태 c로 번경
        status[b] = c
    elif a == 2 :   # b~c번 전구 상태 토글
        status[b:c+1] = [abs(s-1) for s in status[b:c+1]]
    elif a == 3 :   # b~c번 전구 끄기
        status[b:c+1] = [0] * (c+1-b)
    elif a == 4 :   # b~c번 전구 켜기
        status[b:c+1] = [1] * (c+1-b)

print(*status[1:])

 

References

  • 백준 구현
반응형

'Algotithms' 카테고리의 다른 글

[백준] 1753 최단경로  (1) 2023.09.26
[백준] 16918 봄버맨  (0) 2023.09.26
[백준] 18427 함께 블록 쌓기  (0) 2023.09.25
[백준] 11047 동전 0  (0) 2023.09.25
[백준] 14863 서울에서 경산까지  (0) 2023.09.22
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.