코드업 기초 100제 문제 097
# 바둑판에 십자 뒤집기
# 부모님을 기다리던 영일이는 검정/흰 색 바둑알을 바둑판에 꽉 채워 깔아 놓고 놀다가...
# "십(+)자 뒤집기를 해볼까?"하고 생각했다.
# 바둑판(19 * 19)에 흰 돌(1) 또는 검정 돌(0)이 모두 꽉 채워져 놓여있을 때, n개의 좌표를 입력받아 십(+)자 뒤집기한 결과를 출력하는 프로그램을 작성해보자.
# 입력
# 바둑알이 깔려 있는 상황이 19 * 19 크기의 정수값으로 입력된다.
# 십자 뒤집기 횟수(n)가 입력된다.
# 십자 뒤집기 좌표가 횟수(n) 만큼 입력된다. 단, n은 10이하의 자연수이다.
# 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0
# 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0
# 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0
# 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0
# 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0
# 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0
# 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0
# 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0
# 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0
# 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
# 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0
# 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
# 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0
# 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0
# 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0
# 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0
# 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0
# 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0
# 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0
# 2
# 10 10
# 12 12
# 출력
# 십자 뒤집기 결과를 출력한다.
# 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
# 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
# 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
# 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
# 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
# 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
# 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
# 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
# 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
# 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0
# 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
# 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0
# 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
# 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
# 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
# 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
# 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
# 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
# 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
소스
더보기
board = []
for _ in range(19):
board.append(list(map(int,input().split())))
n = int(input())
for _ in range(n):
x,y = map(int, input().split())
for i in range(19):
board[i][y-1] = 1 if board[i][y-1] == 0 else 0
board[x-1][i] = 1 if board[x-1][i] == 0 else 0
for brd in board:
print(*brd)
이문제는 2중 배열을 주고 입력값에 따라 환경이 어떻게 변하는지에 대한 문제입니다. 이문제는 좌표를 하나만 바꿔도 주변 상황 또한 바뀌기 때문에 2중 반복문을 사용하여 바깥 반복문에서는 n번만큼 입력을 받고 안쪽에는 19번을 돌며 주변 상황을 바꾸는 소스를 적용시켜주면 끝입니다.
'파이썬 > 코트업 기초 100제' 카테고리의 다른 글
코드업 기초 100제 문제 099 (0) | 2022.02.08 |
---|---|
코드업 기초 100제 문제 098 (0) | 2022.02.08 |
코드업 기초 100제 문제 096 보너스 (0) | 2022.02.08 |
코드업 기초 100제 문제 096 (0) | 2022.02.08 |
코드업 기초 100제 문제 095 (0) | 2022.02.07 |