프로그래머스 공원 산책 Java 풀이에 대해 알아보겠습니다. 이 문제 역시 BFS 시작 전에 연습용으로 풀기 적절하실 거 같습니다 🙂
프로그래머스 – 공원 산책 Java 경로
문제 설명 및 제한사항



공원 산책 Java 풀이
X, Y 좌표가 헷갈리실 수 있지만 그림을 기준으로 생각해보시길 바랍니다.
문제 해결 프로세스는 아래와 같습니다.
1. 시작 위치 찾기.
2. 명령에 따라서 위치 변경
if( 해당 위치로 이동 도중에 범위를 이탈하거나 장애물을 만나면)
{
break, 다음 명령으로
} else
{
원래 위치(x, y)를 해당 위치(mx, my)로 이동
}
class Solution { public int[] solution(String[] park, String[] routes) { int[] answer = new int[2]; int x = 0, y = 0; // 시작 위치 찾기 for(int i = 0; i < park.length; i++) for(int j = 0; j < park[0].length(); j++) if(park[i].charAt(j) == 'S') { x = i; y = j; } // 명령 시작 for(String s : routes) { String order = s.split(" ")[0]; // 방향 int move = Integer.parseInt(s.split(" ")[1]); // 움직일 거리 int mx = x; int my = y; for(int i = 0; i < move; i++) { if(order.equals("N")) // 북 mx--; else if(order.equals("S")) // 남 mx++; else if(order.equals("W")) // 서 my--; else // 동 my++; // 범위 밖 or 장애물 if(mx < 0 || my < 0 || mx >= park.length || my >= park[0].length() || park[mx].charAt(my)=='X') { break; } // 마지막 이동까지 문제 없으면 이동. else if (i == move - 1) { x = mx; y = my; } } } answer[0] = x; answer[1] = y; return answer; } }
결과

답글 남기기