1~3번 행동의 차이를 보다가, 2번과 3번이 선택한 칸의 반전 여부가 다르다는 것을 알게 되었다.
모든 칸에 2번 행동을 취해준 후 결과에서 검은색이 있다면 그 칸은 3번 행동을 취해야 했던 칸임을 알 수 있다.
모두 3번 행동을 돌리고 흰색이 있으면 2번 행동을 취해야 했던 것이기도 하다. 어떻게 하던 상관은 없다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
import sys
input = sys.stdin.readline
n,m = map(int,input().split())
a = []
for i in range(n):
r = list(str(input()))
for j in range(m):
r[j] = (True if r[j] == "W" else False)
a.append(r)
dx = [-1,1,0,0]
dy = [0,0,-1,1]
for i in range(n):
for j in range(m):
for k in range(4):
nx = dx[k] + i
ny = dy[k] + j
if 0 <= nx < n and 0 <= ny < m:
a[nx][ny] = not a[nx][ny]
print(1)
for i in range(n):
for j in range(m):
if a[i][j] == True:
print(2,end='')
else:
print(3,end='')
print('')
|
cs |
애드혹 정말 재밌다
삽질만 안하면..
오타, 오류 지적 환영합니다.
'백준 문제풀이' 카테고리의 다른 글
백준 20528 - 끝말잇기 [Python] (0) | 2021.01.04 |
---|---|
백준 14939 - 불 끄기 [Python] (0) | 2020.12.25 |
백준 11060 - 점프 점프 [Python] (0) | 2020.12.23 |
백준 19846 - 신기한 연산 [Python] (0) | 2020.12.22 |
백준 20366 - 같이 눈사람 만들래? [Python] (0) | 2020.12.22 |