백준 문제풀이
백준 17302 - 흰색으로 만들기 [Python]
Vermeil
2020. 12. 23. 01:59
17302번: 흰색으로 만들기
첫 줄에 N과 M이 주어진다. (1 ≤ N, M ≤ 2,000) 다음 줄부터 N개의 줄에 걸쳐 각 행의 상태를 나타내는 길이 M의 문자열이 주어진다. 모든 문자열은 'B'와 'W'로 이루어져 있다. i 번째 줄, j 번째 문자
www.acmicpc.net
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 |
애드혹 정말 재밌다
삽질만 안하면..
오타, 오류 지적 환영합니다.