본문 바로가기

코딩 문제/프로그래머스

프로그래머스 - 실력체크 - 레벨 2 - 9번째

728x90

 

풀이

 

import java.util.HashSet;

 

class Solution {

      public int solution(String dirs) {

            int answer = 0;

            int x = 0, y = 0, nextX = 0, nextY = 0;

 

            HashSet<String> set = new HashSet<>();

 

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

                  char a = dirs.charAt(i);

                  if(a == 'U' && nextY+1 <= 5){

                        nextY++;

                  }else if(a == 'D' && nextY-1 >= -5){

                        nextY--;

                  }else if(a == 'L' && nextX-1 >= -5){

                        nextX--;

                  }else if(a == 'R' && nextX+1 <= 5){

                        nextX++;

                  }

                  // 범위 넘어가면 건너뛰기

                  if(x==nextX && y == nextY){

                        continue; // 뒤에 생략

                  }

                  set.add(x + "" + y + "" + nextX + "" + nextY);

                  set.add(nextX + "" + nextY + "" + x + "" + y);

                  x = nextX;

                  y = nextY;

            }

            answer = set.size()/2;

            return answer;

      }

}

 

결과