코딩하는 해맑은 거북이
[Python] 늑대와 양 - 백준 본문
해당 글은 백준 16956번 문제 '늑대와 양'을 다룬다.
문제
https://www.acmicpc.net/problem/16956
16956번: 늑대와 양
크기가 R×C인 목장이 있고, 목장은 1×1 크기의 칸으로 나누어져 있다. 각각의 칸에는 비어있거나, 양 또는 늑대가 있다. 양은 이동하지 않고 위치를 지키고 있고, 늑대는 인접한 칸을 자유롭게
www.acmicpc.net
설명
해당 문제는 최소 울타리의 제한조건이 없으므로, 늑대나 양이 아닌 모든 곳을 울타리로 채워서 풀 수 있다.
그리고 만약 늑대 주변 상하좌우에 양이 있다면, 양에게 접근할 수 있는 것이므로 임의의 변수 access로 True로 설정해준다.
코드
r, c = map(int, input().split())
board = []
for i in range(r):
board.append(list(input()))
# 상하좌우
dx = [-1, 1, 0, 0]
dy = [0, 0, 1, -1]
access = False
for i in range(r):
for j in range(c):
if board[i][j] == 'W':
for k in range(4):
nx = i + dx[k]
ny = j + dy[k]
if nx < 0 or nx >= r or ny < 0 or ny >= c:
continue
if board[nx][ny] == 'S':
access = True
elif board[i][j] == 'S':
continue
elif board[i][j] == '.':
board[i][j] = 'D'
if access == True:
print(0)
else:
print(1)
for i in board:
print(''.join(i))
'코딩테스트' 카테고리의 다른 글
[Python] 강의실 배정 - 백준 (그리디) (0) | 2023.01.25 |
---|---|
[Python] 주유소 - 백준 (그리디) (0) | 2023.01.22 |
[Python] 연속합 - 백준 (DP) (0) | 2023.01.21 |
[Python] 회전하는 큐 - 백준 (0) | 2023.01.21 |
[Python] 풍선 터뜨리기 - 백준 (0) | 2023.01.21 |
Comments