BFS - 늑대와 양

jiholee·2021년 12월 17일
0

코딩테스트 - python

목록 보기
6/10
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

0개의 댓글