[백준] 스위치 켜고 끄기

쏠로몬·2021년 10월 25일
0

접근 방법 : 단순 구현
정말 멘탈 많이 흔들린 문제였다.
예외처리를 제대로 해주지 않아 계속 틀린 문제였고, 예외처리하는 스킬을 얻어 갈 수 있었다.

그리고 문제를 좀 끝까지 제대로 읽자...

import sys
from collections import deque

n = int(sys.stdin.readline())
board = [-1] + list(map(int, sys.stdin.readline().strip().split()))
c = int(sys.stdin.readline())
case = deque([])

for _ in range(c):
    input_case = list(map(int , sys.stdin.readline().strip().split()))
    case.append(input_case)

while case:
    sex, num = case.popleft()

    if sex == 1:
        for i in range(1, n + 1):
            if i % num == 0:
                if board[i] == 1:
                    board[i] = 0
                else:
                    board[i] = 1
    else:
        if board[num] == 1:
            board[num] = 0
        else:
            board[num] = 1

        for i in range(1, n):
            # 앞으로는 예외처리하는 식을 break 처리 하는 걸로..
            if num + i > n or num - i < 1 : 
                break
            if board[num + i] == board[num - i]:
                if board[num + i] == 1:
                    board[num + i] = board[num - i] = 0
                else:
                    board[num + i] = board[num - i] = 1
            else:
                break

for i in range(1, n + 1):
    print(board[i], end=" ")
    if i % 20 == 0:
        print()
profile
이사가요~ 티스토리 블로그 입니다. https://help-solomon.tistory.com/

0개의 댓글