본문 바로가기
Java/알고리즘

[Java] 프로그래머스 Lv2 - 방문 길이

by WaterPunch 2024. 10. 30.

 

class Solution {
    public int solution(String dirs) {
    	// 3차원 배열 생성, [X포인트][Y포인트][방향]
        // U 일때
        // [현재 X포인트][현재 Y포인트][UP] = true 처리
        // [현재 X포인트][현재 Y포인트+1][DOWN] = true 도 해주어야 한다
        boolean[][][] con = new boolean[11][11][4];
        int currentX = 5;
        int currentY = 5;
        int answer = 0;
        int up = 0, down = 1, left = 2, right = 3;

        for(int i=0; i<dirs.length(); i++) {
            char c = dirs.charAt(i);

            if(c == 'U') {
                if(currentY < 10) {
                    if(!con[currentX][currentY][up]) {
                        con[currentX][currentY][up] = true;
                        con[currentX][currentY+1][down] = true;
                        answer++;
                    }
                    currentY++;
                }
            } else if(c == 'D') {
                if(currentY > 0) {
                    if(!con[currentX][currentY][down]) {
                        con[currentX][currentY][down] = true;
                        con[currentX][currentY-1][up] = true;
                        answer++;
                    }
                    currentY--;
                }
            } else if(c == 'L') {
                if(currentX > 0) {
                    if(!con[currentX][currentY][left]) {
                        con[currentX][currentY][left] = true;
                        con[currentX-1][currentY][right] = true;
                        answer++;
                    }
                    currentX--;
                }
            } else if(c == 'R') {
                if(currentX < 10) {
                    if(!con[currentX][currentY][right]) {
                        con[currentX][currentY][right] = true;
                        con[currentX+1][currentY][left] = true;
                        answer++;
                    }
                    currentX++;
                }
            }

        }
        return answer;
    }
}

 

하드코딩 만세!

반응형

댓글