alpyrithm_알파이리즘

[알고리즘][Python] 백준(BOJ) 1244 스위치 켜고 끄기_파이썬 본문

Algorithm/백준 알고리즘_Python

[알고리즘][Python] 백준(BOJ) 1244 스위치 켜고 끄기_파이썬

알파이 2020. 10. 29. 08:17

 

1244 스위치 켜고 끄기    www.acmicpc.net/problem/1244

 

1244번: 스위치 켜고 끄기

첫째 줄에는 스위치 개수가 주어진다. 스위치 개수는 100 이하인 양의 정수이다. 둘째 줄에는 각 스위치의 상태가 주어진다. 켜져 있으면 1, 꺼져있으면 0이라고 표시하고 사이에 빈칸이 하나씩

www.acmicpc.net

 

 

문제 풀기 전 공부할 것 : 구현

 

 

 

 

 

 

 

풀이

<내용>

  • on_off를 통해 1이면 0으로 바꾸고 0이면 1로 바꿀 수 있도록 한다.
  • 학생수만큼 for문을 돌면서 남학생인 경우, 여학생인 경우로 나눠서 스위치 작업을 진행한다.
  • 출력할 때 20개씩 끊어서 출력한다.

 

 

<코드>

import sys
input = sys.stdin.readline

on_off = {1:0, 0:1}
n = int(input())
switch = list(map(int, input().split()))
t = int(input())
for _ in range(t):
    s, num = map(int, input().split())
    if s == 1:
        i = num
        while num-1 < n:
            switch[num-1] = on_off[switch[num-1]]
            num += i
    else:
        i, j = num-2, num
        switch[num-1] = on_off[switch[num-1]]
        while i >= 0 and j < n:
            if switch[i] == switch[j]:
                switch[i] = on_off[switch[i]]
                switch[j] = on_off[switch[j]]
            else:
                break
            i -= 1
            j += 1
            
for i in range(0, n, 20):
    print(*switch[i:i+20])

 

 

 

 

 

 

 

728x90
반응형
Comments