[ALGOSPOT] 알고스팟 BOARDCOVER 게임판 덮기
(Python)
(글쓴날 : 2020.05.21)
* ALGOSPOT, 알고스팟 아이디 문제 Python 언어 풀이입니다.
* 소스 코드의 저작권은 글쓴이에게 있습니다.
알고스팟 BOARDCOVER 게임판 덮기
1) 문제
문제 링크 : https://www.algospot.com/judge/problem/read/BOARDCOVER
2) 풀이 과정
* 시간 복잡도 : O(nm)
검은 칸과 흰 칸으로 구성된 H * W 크기의 게임판이 주어질 때, 3칸짜리 L자 모양을 한 블록을 자유롭게 회전시켜 모든 흰 칸을 덮을 수 있는 경우의 수를 구하는 문제입니다.
저의 경우, DFS를 적용하였고 Python을 사용했습니다.
먼저, L자 모양 블록의 형태를 x, y 인덱스로 표현한 2차원 방향 벡터 dx, dy를 만들어 놓은 뒤,
게임판을 깊이 우선 탐색하여, 흰 칸이 탐색 될 경우 놓을 수 있는 블록이 있는지 확인한 후 놓을 수 있다면 블록을 놓았습니다.
그렇게 블록을 채워나가다 만약, 게임판의 모든 흰 칸이 덮였을 경우 답을 1씩 증가시켜 문제를 해결했습니다.
3) 코드
* Python 코드
'Deprecated' 카테고리의 다른 글
[Electron] BrowserWindow 옵션 정리 (2) | 2020.05.25 |
---|---|
[ALGOSPOT] 알고스팟 QUADTREE 쿼드 트리 뒤집기(Python) (0) | 2020.05.22 |
[programmers] 프로그래머스 징검다리 건너기(Python) (0) | 2020.05.18 |
[programmers] 프로그래머스 호텔 방 배정(Python) (0) | 2020.05.18 |
[Baekjoon Online Judge] 백준 2170번 선 긋기(Python) (0) | 2020.05.17 |