문제
https://school.programmers.co.kr/learn/courses/30/lessons/49994#
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
코드
import java.util.*;
class Solution {
public int solution(String dirs) {
int dx [] = {-1, 1, 0, 0};
int dy [] = {0, 0, 1, -1};
boolean visited [][][] = new boolean [11][11][4];
int x = 5;
int y = 5;
int answer = 0;
for(int i =0;i<dirs.length();i++){
char ch = dirs.charAt(i);
int d = 0;
if(ch == 'L') d = 0;
else if(ch == 'R') d=1;
else if(ch == 'U') d=2;
else if(ch == 'D') d=3;
int nx = x + dx[d];
int ny = y + dy[d];
if(nx < 0 || nx > 10 || ny < 0 || ny > 10) continue;
if(!visited[ny][nx][d]){
answer += 1;
visited[ny][nx][d] = true;
d = d%2==0 ? d+1 : d-1;
visited[y][x][d] = true;
}
y = ny;
x = nx;
System.out.println(x+" "+y+" "+answer);
}
return answer;
}
}