프로그래머스 level2 ) 방문 길이

하우르·2021년 7월 11일
0

프로그래머스 level2 ) 방문 길이

class Solution {
    public int solution(String dirs) {
       int answer = 0;
		char[][] map = new char[11][11];
	    boolean[][][][] visit = new boolean[11][11][11][11];
		int x = 5, y = 5;

		for (int i = 0; i < dirs.length(); i++) {
			int nx=x;
			int ny=y;
			if (x - 1 >= 0 && dirs.charAt(i) == 'U')
				nx--;
			else if (x + 1 <= 10 && dirs.charAt(i) == 'D')
				nx++;
			else if (y - 1 >= 0 && dirs.charAt(i) == 'L')
				ny--;
			else if (y + 1 <= 10 && dirs.charAt(i) == 'R')
				ny++;
			if(visit[nx][ny][x][y]==true || visit[x][y][nx][ny]==true) {
				x=nx;y=ny;continue;
			}
			if(x==nx && y==ny)continue;
			visit[nx][ny][x][y]=true;
			visit[x][y][nx][ny]=true;
			x=nx;y=ny;answer++;
		}
        return answer;
    }
}

풀이

이 문제에세 까다롭던 부분이 그저 좌표 방문 여부만 체크하면 된다고 생각했는데
좌표1 -> 좌표2 이것을 저장했어야 했다.
어떤식으로 저장할지 생각을 못했다 =ㅠ
boolean[][][][] visit = new boolean[11][11][11][11];
다른분이 사용한 방법으로 문제를 풀었다.

profile
주니어 개발자

0개의 댓글

관련 채용 정보