알고리즘/문제 풀이
[Java/자바 프로그래머스] 방문길이
광규니
2022. 2. 4. 16:28
반응형
풀이
방법은 hashmap이나 set써도 될거같지만,
4차원 배열은 사용했습니다.
x, y, nx, ny를 방문처리하고
nx, ny, x, y 또한 양방향 방문처리를 했습니다.
class Solution {
public int solution(String dirs) {
int answer = 0;
int x = 5;
int y = 5;
int[][][][] map = new int[11][11][11][11];
int[] dx = {1, -1, 0, 0};
int[] dy = {0, 0, 1, -1};
for(int i = 0 ; i < dirs.length(); i++){
char tmp = dirs.charAt(i);
int dir = -1;
if(tmp == 'U'){
dir = 0;
}
else if(tmp == 'D'){
dir = 1;
}
else if(tmp == 'R'){
dir = 2;
}
else if(tmp == 'L'){
dir = 3;
}
int nx = x + dx[dir];
int ny = y + dy[dir];
if(0 > nx || nx >= 11 || 0 > ny || ny >= 11) continue;
if(map[x][y][nx][ny] == 0){
map[x][y][nx][ny] = 1;
map[nx][ny][x][y] = 1;
answer++;
}
x = nx;
y = ny;
}
return answer;
}
}
반응형