Skip to content

Latest commit

 

History

History
59 lines (48 loc) · 1.61 KB

File metadata and controls

59 lines (48 loc) · 1.61 KB

프로그래머스 Level2 : Summer/Winter Coding(~2018) 방문 길이

import java.util.HashSet;
import java.util.Iterator;
class Solution {
    final int MAP_SIZE = 5;
    public int solution(String dirs) {
        HashSet<String> set = new HashSet<>();

        int currR = 0;
        int currC = 0;
        
        for(char c : dirs.toCharArray()){
            if(currR >= MAP_SIZE && c=='U') continue;
            else if(currR <= MAP_SIZE*-1 && c=='D') continue;
            else if(currC >= MAP_SIZE && c=='R') continue;
            else if(currC <= MAP_SIZE*-1 && c=='L') continue;
            
            StringBuilder sb1 = new StringBuilder();
            sb1.append(currR);
            sb1.append(" ");
            sb1.append(currC);
            sb1.append(" ");
            sb1.append(c);
            
            set.add(sb1.toString());
            
            String reverse = "";
            if(c=='U'){
                currR+=1;
                reverse = " D";
            } else if(c=='D'){
                currR-=1;
                reverse = " U";
            } else if(c=='R'){
                currC+=1;
                reverse = " L";
            } else {
                currC-=1;   
                reverse = " R";
            }
            
            StringBuilder sb2 = new StringBuilder();
            sb2.append(currR);
            sb2.append(" ");
            sb2.append(currC);
            sb2.append(reverse);
            
            set.add(sb2.toString());
            
        }
       
        return set.size()/2;
    }
}