이거 출력이 저렇게 안나와도 맞았다고 해준다..
풀다가 아무래도 모르겠어서 다른 분들 코드를 보면서 오호 이렇게 하는거구나 하고 열심히 했는데
출력이 예제와 달라서 어쩌지,,하다가 제출했더니 맞았다고 그랬다..! ㅠㅠ(이유는 모름)
일단, 이 문제는 늑대와 양이 인접하는 지를 알아보기 위해, 늑대를 찾아 늑대의 상하좌우를 검색하며
울타리를 설치할 수도 없이 바로 양과 인접한 경우에는 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)
반응형