[BOJ16956] 늑대와 양

Updated:

문제

  • r*c 목장, 1*1 크기의 칸
  • 비어있거나, 양(이동 x), 늑대(인접한 칸 이동 가능)
  • 울타리 설치해 늑대가 양 못 잡아먹게하기

입력

  • R, C(<= 500)
  • 목장의 상태 (. S W)로 표현

출력

  • 늑대가 양이 있는 칸으로 갈 수 없게 할 수 있다면 1 출력, 있으면 0
  • 둘째 줄부터 R 줄에는 목장 상태 출력, 울타리는 ‘D’

설계

  • 늑대와 양이 바로 붙어있으면 무조건 잡아먹힘
  • 아닌 상태라면, 늑대나 양의 사방에 울타리로 감싸기
  • 양이 무슨 죄인가… 늑대 사방에 울타리 쳐서 풀었음

피드백

  • 문제 연구소처럼 벽을 쳐서 막는 것인 줄 알고, 생각보다 까다로울 것이라 생각함
  • 그런데 문제 노트에서 그냥 1, 0만 판단만 하면 되며, 울타리를 최소의 개수만 써야된다는 조건이 없었음
  • DFS, BFS 같은 탐색 필요 없고, 늑대나 양 위치만 확인하여 사방 체크 후 울타리치기

How I solved(click to github)


ref :
BOJ16956

Leave a comment