import sys
dx = [-1, 0, 1, 0]
dy = [0, 1, 0, -1]
R, C = map(int, input().split())
board = [list(input()) for _ in range(R)]
flag = False
for i in range(R):
for j in range(C):
if board[i][j] == "W":
for dir in range(4):
nx = i + dx[dir]
ny = j + dy[dir]
if 0 <= nx < R and 0<= ny < C and board[nx][ny] == "S": # 늑대옆에 양
flag = True;
break;
elif board[i][j] == "S":
continue;
else: # 빈칸은 모두 울타리로
board[i][j] = "D"
if flag:
print(0)
else:
print(1)
for i in board:
print(''.join(i))
📌 알게된 점
2차원 리스트 한번에 입력받기
import sys
board = [list([p for p in sys.stdin.readline().strip()]) for _ in range(R)]
또는
board = [list(input()) for _ in range(R)]
for i in board:
print(i)
이렇게 출력하면
['D', 'D', 'S', 'D', 'D', 'D']
['D', 'D', 'S', 'D', 'W', 'D']
['D', 'S', 'D', 'D', 'D', 'D']
['D', 'D', 'W', 'D', 'D', 'D']
['D', 'D', 'D', 'W', 'D', 'D']
['D', 'D', 'D', 'D', 'D', 'D']
''으로 이어줘야 원하는 모양으로 나온다
DDSDDD
DDSDWD
DSDDDD
DDWDDD
DDDWDD
DDDDDD