[삼성 SW 역량 테스트 기출 문제집] 백준 14503 - 로봇청소기

SW 역량테스트 대비 문제 풀기

 

https://www.acmicpc.net/problem/14503

 

14503번: 로봇 청소기

로봇 청소기가 주어졌을 때, 청소하는 영역의 개수를 구하는 프로그램을 작성하시오. 로봇 청소기가 있는 장소는 N×M 크기의 직사각형으로 나타낼 수 있으며, 1×1크기의 정사각형 칸으로 나누어져 있다. 각각의 칸은 벽 또는 빈 칸이다. 청소기는 바라보는 방향이 있으며, 이 방향은 동, 서, 남, 북중 하나이다. 지도의 각 칸은 (r, c)로 나타낼 수 있고, r은 북쪽으로부터 떨어진 칸의 개수, c는 서쪽으로 부터 떨어진 칸의 개수이다. 로봇 청소기는 다음

www.acmicpc.net

 

바보 같이 푼 문제...

주어진 조건에 따라 로봇청소기를 이동시키면 되는 시뮬레이션 문제였다.

check 함수로 네 방향 모두 청소가 되어있는 지 확인 후, 후진 여부를 주는 isBack 함수를 구현해서 재귀(DFS)를 종료 시켜주었다. 

 

dx[] = {1,-1,0,0}

dy[] = {0,0,-1,1} 

 

위와 같은 상하좌우를 탐색을 위한 배열을 선언해서 돌려주는 개념만 있으면 풀기 쉬울 듯 하다.