2022년 03월 14일 월요일 - 왜 아직도 월요일?


오늘 올려볼 문제는 71번 Simplify Path 이라는 문제이다.


사진을 클릭하면 해당 문제로 이동합니다.

leetcode 문제 사진

오늘도 LeetCode 사이트 오늘의 문제를 가지고 왔다.

~~오늘 문제 뭔말인가 싶었는데... 쉬웠다.. ~~


입력


사진에서도 볼 수 있듯이 String 하나가 입력으로 들어온다.



풀이 및 코드


주어진 절대경로를 단순화하여 리턴하는 문제다.


오늘은 처음부터 정답을 생각해냈다.

/를 기준으로 split 하고 . 은 넘기고 .. 은 ArrayList에 담긴 맨 마지막 값을 빼는 식으로 구현했다.


이제 코드를 봐보자!


풀이코드

class Solution {
    public String simplifyPath(String path) {
        ArrayList<String> arr = new ArrayList<String>();
        String[] input = path.split("/");

        for(int i = 0; i < input.length; i++)
        {
            if(input[i].equals("."))
                continue;
            else if(input[i].equals(".."))
            {
                if(arr.size() > 0)
                    arr.remove(arr.size() - 1);
            }
            else if(input[i].equals(""))
                continue;
            else
                arr.add(input[i]);
        }

        StringBuilder sb = new StringBuilder();

        for(int i = 0; i < arr.size(); i++)
        {
            sb.append("/");
            sb.append(arr.get(i));
        }

        if(sb.length() == 0)
            sb.append("/");

        return sb.toString();
    }
}




제출 화면

leetcode 문제 맞았습니다


문제 이해를 못했어서 푸는데 시간이 좀 걸렸는데 이해하고 나서는 굉장히 쉽게 풀었다.

내일 문제는 재밌는 문제였으면 좋겠다.


내일도 문제를 풀어서 블로그에 글을 쓸 수 있으면 좋겠다.

+ Recent posts