프로그래머스 공원 산책 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;
}
}
결과

답글 남기기