Programmers 방문 길이

Updated:

Answer

```java import java.util.*;

class Solution { public int solution(String dirs) { int answer = 0;
int x = 0; int y = 0;

    HashSet<String> set = new HashSet<>();
    HashMap<Character, int[]> map = new HashMap<>();
    
    map.put('U', new int[]{0, 1});
    map.put('D', new int[]{0, -1});
    map.put('R', new int[]{1, 0});
    map.put('L', new int[]{-1, 0});
    
    for(Character dir : dirs.toCharArray()){
        int lastX = x, lastY = y;
        
        x += map.get(dir)[0];
        y += map.get(dir)[1];
        
        if(x > 5 || x < - 5){
            x -= map.get(dir)[0];
            continue;
        }
        
        if(y > 5 || y < -5){
            y -= map.get(dir)[1];
            continue;
        }
                  
        set.add(lastX + "" + lastY + "" + x + "" + y);
        set.add(x + "" + y + "" + lastX + "" + lastY);
    }
    
    answer = set.size() / 2;
    return answer;
} }

Categories:

Updated: