16956번: 늑대와 양
크기가 R×C인 목장이 있고, 목장은 1×1 크기의 칸으로 나누어져 있다. 각각의 칸에는 비어있거나, 양 또는 늑대가 있다. 양은 이동하지 않고 위치를 지키고 있고, 늑대는 인접한 칸을 자유롭게
www.acmicpc.net

이거 출력이 저렇게 안나와도 맞았다고 해준다..
풀다가 아무래도 모르겠어서 다른 분들 코드를 보면서 오호 이렇게 하는거구나 하고 열심히 했는데
출력이 예제와 달라서 어쩌지,,하다가 제출했더니 맞았다고 그랬다..! ㅠㅠ(이유는 모름)
일단, 이 문제는 늑대와 양이 인접하는 지를 알아보기 위해, 늑대를 찾아 늑대의 상하좌우를 검색하며
울타리를 설치할 수도 없이 바로 양과 인접한 경우에는 0을 출력하고, 그 외에는 1과 함께 울타리를 설치해주면 된다.
# 늑대와 양
r, c = map(int, input().split(' ')) # 목장의 크기
farm = []
for i in range(r):
farm.append(list(input()))
X, Y = [-1, 0, 1, 0], [0, -1, 0, 1] # 늑대의 좌우, 상하 확인
safe = True # 늑대가 양에 인접할 수 있는 지
# . : 빈칸, S : 양, W : 늑대
for i in range(r):
for j in range(c):
if farm[i][j] == "W":
for k in range(4):
dx, dy = i + X[k], j + Y[k]
if dx < 0 or dy < 0 or dx >= r or dy >= c: # 범위 밖을 벗어나는 경우
continue # 넘어가기
elif farm[dx][dy] == "S": # 양과 인접한다면
safe = False
elif farm[i][j] == "S":
continue
else:
farm[i][j] = "D" # 울타리 설치
if safe:
print(1)
for i in farm:
print("".join(i))
else:
print(0)
[백준 / Python] 16956번 늑대와 양 | 초코더
https://www.acmicpc.net/problem/16956 16956번: 늑대와 양 크기가 R×C인 목장이 있고, 목장은 1×1 크기의 칸으로 나누어져 있다. 각각의 칸에는 비어있거나, 양 또는 늑대가 있다. 양은 이동하지 않고 위치
sinsomi.tistory.com
반응형