본문 바로가기
알고리즘 문제/Algospot

[algospot][BOARDCOVER] 게임판 덮기

by 햄과함께 2019. 5. 31.
320x100

문제 : https://algospot.com/judge/problem/read/BOARDCOVER


 

가능한 경우

 x 위치를 탐색할 때 x를 채울 수 있는 L 블럭 모양은 위와 같다.

블럭은 (0,0) 인덱스부터 탐색하며 열우선탐색으로 탐색해나간다.

따라서 x 위치를 탐색할 때는 이전 행들과 이전 열은 모두 블럭이 채워져있음을 보장해야 한다.

즉, 열우선탐색을 하면서 아직 채워져 있지 않은 곳을 찾은 다음 위 4가지 중에 한 가지 이상 방법으로 채울 수 있으면 그 방법으로 채우고 다시 처음부터 열우선 탐색으로 빈 곳을 찾고를 반복한다.

만약 4가지 중 어느 방법으로도 L 블록을 채울 수 없다면 현재 빈 곳을 채울 수 없다는 뜻이므로 탐색을 중단한다.

만약 모든 블록이 채워져있다면 정답 +1을 한다.


소스코드 : https://gist.github.com/fpdjsns/7b5a63f4e0ae9fa28b06ce4c7628f5e6

320x100

댓글