[프로그래머스] PCCE 기출문제 5번 / 산책 – JAVA


프로그래머스 “PCCE 기출문제 5번 / 산책” 문제 해결과정입니다.

PCCE 기출문제 5번 / 산책

문제설명

여름이는 강아지를 산책시키려고 합니다. 여름이는 2차원 좌표평면에서 동/서/남/북 방향으로 1m 단위로 이동하면서 강아지를 산책시킵니다. 산책루트가 담긴 문자열 route가 주어질 때, 도착점의 위치를 return하도록 빈칸을 채워 solution함수를 완성해 주세요.

  • route는 “N”, “S”, “E”, “W”로 이루어져 있습니다
    • “N”은 북쪽으로 1만큼 움직입니다.
    • “S”는 남쪽으로 1만큼 움직입니다.
      • 북쪽으로 -1만큼 움직인 것과 같습니다.
    • “E”는 동쪽으로 1만큼 움직입니다.
    • “W”는 서쪽으로 1만큼 움직입니다.
      • 동쪽으로 -1만큼 움직인 것과 같습니다.
  • 출발점으로부터 [동쪽으로 떨어진 거리, 북쪽으로 떨어진 거리]형태로 강아지의 최종 위치를 구해서 return해야 합니다.
  • 출발점을 기준으로 서쪽, 남쪽에 있는 경우는 동쪽, 북쪽으로 음수만큼 떨어진 것으로 표현합니다.
    • 출발점으로부터 동쪽으로 2, 북쪽으로 3만큼 떨어졌다면 [2, 3]을 return 합니다.
    • 출발점으로부터 서쪽으로 1, 남쪽으로 4만큼 떨어졌다면 [-1, -4]를 return 합니다.

제한사항

  • 1 ≤ route의 길이 ≤ 20
  • route는 “N”, “S”, “E”, “W”로만 이루어져 있습니다.

입출력 예

routeresult
“NSSNEWWN”[-1,1]
“EESEEWNWSNWWNS”[0,0]
— : 공백

입출력 예 설명

입출력 예 #1

  • “NSSNEWWN” 순서대로 움직이면 서쪽으로 1, 북쪽으로 1만큼 떨어진 곳에 도착하게 되므로 [-1, 1]을 return합니다.

입출력 예 #2

  • “EESEEWNWSNWWNS” 순서대로 움직이면 출발지와 같은 곳으로 돌아오므로 [0, 0]을 return합니다.

문제 해결과정

프로그래머스 코드

class Solution {
    public int[] solution(String route) {
        int east = 0;
        int north = 0;
        int[] answer = new int [2];
        for(int i=0; i<route.length(); i++){
            switch(route.charAt(i)){
                case 'N':
                    north++;
                    break;
                case 'S': north--;
                    break;
                case 'E': east++;
                    break;
                case 'W': east--;
                    break;
            }
        }
        answer[0] = east;
        answer[1] = north;
        return answer;
    }
}

Italics : Blank

기출문제 5번은 문제 설명덕분에 너무 쉽게 푼 것 같다. N이 북쪽이고 S가 반대쪽, 남쪽이니 북쪽으로 –를 붙여주면 -1만큼 이동하고 남쪽으로 +1만큼 이동하는 것과 같다. 동쪽과 서쪽도 마찬가지로 ease변수가 있으니 동쪽은 east++, 서쪽은 east–를 붙여서 문제를 해결했다.


댓글 남기기

광고 차단 알림

광고 클릭 제한을 초과하여 광고가 차단되었습니다.

단시간에 반복적인 광고 클릭은 시스템에 의해 감지되며, IP가 수집되어 사이트 관리자가 확인 가능합니다.