변수의 기록

(코테) 프로그래머스_방문길이 *방문 길이 본문

기타/코딩테스트

(코테) 프로그래머스_방문길이 *방문 길이

불광동 물주먹 2025. 6. 30. 17:04

 

 

 

 

 

 

 

import java.util.*;

class Solution {
    public int solution(String dirs) {
        int answer = 0;    
        
        //t[] current = {0,0};
        int nowX = 0 , nowY = 0;
        //boolean[][] visted = new boolean[10][10];
        Set<String> visted = new HashSet<>(); 
        Map<Character,int[]>  map = new HashMap<>();
        map.put('U',new int[]{0,1});  //U
        map.put('D',new int[]{0,-1});  //D
        map.put('R',new int[]{1,0});  //R
        map.put('L',new int[]{-1,0});  //L
                
        //이동
        for(int i =0; i < dirs.length();i++){
            int nx =nowX , ny = nowY;
            int[] now =map.get(dirs.charAt(i));
            int x=now[0] , y = now[1];            
            int nextX = nx+x , nextY = ny+y;
            if(nextX>5 || nextX<-5 || nextY> 5 || nextY <-5) continue;
            
            String path = nowX + "," + nowY + "-" + nextX + "," + nextY; 
            String reverse = nextX + ","+ nextY + "-" + nowX + "," + nowY; 
            
            if(!visted.contains(path)){
                visted.add(path);
                visted.add(reverse);
                answer++;    
            }    
            
            nowX= nextX;
            nowY= nextY;
                
        }
        
        return answer;
    }
}