2022년 04월 02일 토요일 - 으어어어 뇌가 굳었나...


오늘 올려볼 문제는 680번 Valid Palindrome II 이라는 문제이다.


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

leetcode 문제 사진

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

easy 문제에 시간 30분 쓴거는 또 처음이네...


입력


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



풀이 및 코드


최대 한글자를 지울 수 있다고 했을 때 주어진 String이 palindrome인지 판단하여 리턴하는 문제다.


오늘은 시행착오를 좀 겪었다.

처음에는 재귀를 사용하려 했는데 생각보다 예외처리할게 많아져서 스택을 사용하려 했는데 스택도 예외처리할게 많았다.

그래서 결국 생각한 방법은 처음 양쪽 끝이 달라지는 부분을 찾고 양쪽 하나씩 뺀다음에 비교하는 방법으로 문제를 풀었다.


이제 코드를 봐보자!


풀이코드

class Solution {
    public boolean validPalindrome(String s) {
        int index = 0;
        boolean flag = false;
        for(index = 0; index <= (s.length() + 1) / 2; index++)
        {
            if(s.charAt(index) != s.charAt(s.length() - 1 - index))
            {
                flag = true;
                break;
            }
        }

        if(flag)
        {
            flag = false;

            for(int i = index; i < (s.length() + 1) / 2; i++)
            {
                if(s.charAt(i + 1) != s.charAt(s.length() - 1 - i))
                {
                    flag = true;
                    break;
                }
            }

            if(flag)
            {
                for(int i = index; i < (s.length() + 1) / 2; i++)
                {
                    //System.out.println(s.charAt(i) + " " + s.charAt(s.length() - 2 - i));
                    if(s.charAt(i) != s.charAt(s.length() - 2 - i)) return false;
                }
            }

        }

        return true;
    }
}




제출 화면

leetcode 문제 맞았습니다


easy 문제를 이렇게나 오래동안 풀었다는 거에 좀 충격을 받았다..

내일은 잘 풀 수 있었으면 좋겠다...


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

+ Recent posts