https://programmers.co.kr/learn/courses/30/lessons/49994
/**
1. 명령어에 따른 이동
2. 명령어가 좌표평면을 넘어가면 그 명령어는 무시
3. 전체 명령어에 의해 새로 가본 좌표의 개수를 반환
3-1) 현재좌표에서 이동방향 선을 가본것으로 체크
3-2) 올라간좌표에서 출발좌표까지 선도 써본것으로 체크
**/
class Solution {
public int solution(String dirs) {
int answer = 0;
int[][][] map = new int[11][11][4];
int x = 5;
int y = 5;
for(char c : dirs.toCharArray()){
int nx = 0, ny = 0; // 새로운 좌표
int pos = 0; // 방향
int npos = 0; // 역방향
if(c == 'U'){
nx = x-1;
ny = y;
pos = 0;
npos = 1;
}else if(c == 'D'){
nx = x+1;
ny = y;
pos = 1;
npos = 0;
}else if(c == 'R'){
nx = x;
ny = y+1;
pos = 2;
npos = 3;
}else{
nx = x;
ny = y-1;
pos = 3;
npos = 2;
}
if(0 <= nx && nx < 11 && 0 <= ny && ny < 11){ // 맵범위 안
if(map[x][y][pos] == 0){ // 사용하지 않은 선
map[x][y][pos] = 1;
map[nx][ny][npos] = 1;
answer++;
}
x = nx;
y = ny;
}
}
return answer;
}
}
'Algorithm > 프로그래머스풀이' 카테고리의 다른 글
[알고리즘 문제풀이] 프로그래머스 - [1차] 캐시 / JAVA(자바) (0) | 2022.03.04 |
---|---|
[알고리즘 문제풀이] 프로그래머스 - 카카오 프렌즈 컬러링북 / JAVA(자바) (0) | 2022.03.03 |
[알고리즘 문제풀이] 프로그래머스 - 메뉴 리뉴얼 / JAVA(자바) (0) | 2022.03.02 |
[알고리즘 문제풀이] 프로그래머스 - 빛의 경로 사이클 / JAVA(자바) (0) | 2022.02.28 |
[알고리즘 문제풀이] 프로그래머스 - 2개 이하로 다른 비트 / JAVA(자바) (0) | 2022.02.27 |
댓글