프로그래머스 - 리코쳇 로봇(Java)
bfs 문제입니다. 최소로 움직이는 횟수를 구하는 문제이기 때문에 bfs를 사용해야 한다는 것을 알 수 있습니다. 이 문제는 로봇이 상, 하, 좌, 우로 움직이되 벽이나 장애물(D)을 만나야 움직임을 멈춤니다. while (inRange(nx, ny) && board[nx].charAt(ny) != 'D') { nx += dx[i]; ny += dy[i]; } 즉, 지나가는 경로에 골인(G) 지점이 있더라도 도착한 것이 아닙니다. 로봇이 멈추는 곳이 골인 지점이여야만 합니다. [구현 코드] import java.util.*; class Solution { private final int[] dx = {-1, 1, 0, 0}; private final int[] dy = {0, 0, -1, 1}; priv..
더보기