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}
위와 같은 상하좌우를 탐색을 위한 배열을 선언해서 돌려주는 개념만 있으면 풀기 쉬울 듯 하다.
'알고리즘' 카테고리의 다른 글
백준 14502 연구소 - JAVA (0) | 2020.03.02 |
---|---|
[백준 13458 - JAVA] 시험감독 (0) | 2020.03.01 |
[JAVA 백준 16236] - 아기상어 (0) | 2020.02.27 |
[삼성 SW 역량 테스트 기출 문제집] 백준 3190 뱀 (0) | 2020.02.26 |
[삼성 SW 역량 테스트 기출 문제집] 백준 17144 미세먼지 안녕! (0) | 2020.02.25 |