문제: https://school.programmers.co.kr/learn/courses/30/lessons/172928
class Solution {
public int[] solution(String[] park, String[] routes) {
int row = park.length;
int col = park[0].length();
int curX = 0;
int curY = 0;
// 시작 위치 찾기
for(int i = 0; i < row; i++){
for(int j = 0; j < col; j++){
if(park[i].charAt(j) == 'S'){
curX = i;
curY = j;
break;
}
}
}
for(String str : routes){
String[] split = str.split(" ");
String dir = split[0];
int cnt = Integer.parseInt(split[1]);
int nextX = curX;
int nextY = curY;
boolean flag = true;
if(dir.equals("N")){
for(int i = 0 ; i < cnt; i++){
nextX -= 1;
if(nextX < 0 || park[nextX].charAt(nextY) =='X'){
flag = false;
break;
}
}
if(flag) curX = nextX;
}else if(dir.equals("S")){
for(int i = 0 ; i < cnt; i++){
nextX += 1;
if(nextX >= row || park[nextX].charAt(nextY) == 'X'){
flag = false;
break;
}
}
if(flag) curX = nextX;
}else if(dir.equals("E")){
for(int i = 0 ; i < cnt; i++){
nextY += 1;
if(nextY >= col || park[nextX].charAt(nextY) == 'X'){
flag = false;
break;
}
}
if(flag) curY = nextY;
}else{ // "W"
for(int i = 0 ; i < cnt; i++){
nextY -= 1;
if(nextY < 0 || park[nextX].charAt(nextY) == 'X'){
flag = false;
break;
}
}
if(flag) curY = nextY;
}
}
return new int[]{curX, curY};
}
}