반응형
풀이
방법은 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;
}
}
반응형
'알고리즘 > 문제 풀이' 카테고리의 다른 글
[Java/자바 백준 1347] 미로 만들기 (0) | 2022.02.15 |
---|---|
[Java/자바 백준 17837] 새로운 게임 2 (0) | 2022.02.14 |
[Java/자바 백준 19237] 어른 상어 (0) | 2022.02.04 |
[Java/자바 백준 2234] 성곽 (0) | 2022.02.03 |
[Java/자바 백준 2174] 로봇 시물레이션 (0) | 2022.02.03 |