https://school.programmers.co.kr/learn/courses/30/lessons/172928

 

import java.util.*;

class Solution {
    public int[] solution(String[] park, String[] routes) {
        int pY = 0;
        int pX = 0;
        int flag = 0;
        for (int y = 0; y < park.length; ++y) {
            for (int x = 0; x < park[y].length(); ++x) {
                if (park[y].charAt(x) == 'S') {
                    pY = y;
                    pX = x;
                    flag = 1;
                    break;
                }
                if (flag == 1) break;
            }
        }


        for (int idx = 0; idx < routes.length; ++idx) {
            String[] sp = routes[idx].split(" ");
            int ry = pY;
            int rx = pX;
            int dst = Integer.parseInt(sp[1]);
            int isSuccess = 1;
            for (int move = 0; move < dst; ++move) {
                switch (sp[0]) {
                    case "N":
                        ry--;
                        break;
                    case "S":
                        ry++;
                        break;
                    case "W":
                        rx--;
                        break;
                    case "E":
                        rx++;
                        break;
                }
                System.out.printf("%s %d %d\n", sp[0], ry, rx);

                if (!(ry >= 0 &&
                        ry < park.length &&
                        rx >= 0 &&
                        rx < park[ry].length() &&
                        park[ry].charAt(rx) != 'X')) {

                    isSuccess = -1;
                }
            }
            if (isSuccess == 1) {
                pY = ry;
                pX = rx;
            }
        }
        return new int[]{pY, pX};
    }
}

+ Recent posts