2022년 04월 02일 토요일 - 으어어어 뇌가 굳었나...
오늘 올려볼 문제는 680번 Valid Palindrome II 이라는 문제이다.
사진을 클릭하면 해당 문제로 이동합니다.
오늘도 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;
}
}
제출 화면
easy 문제를 이렇게나 오래동안 풀었다는 거에 좀 충격을 받았다..
내일은 잘 풀 수 있었으면 좋겠다...
내일도 문제를 풀어서 블로그에 글을 쓸 수 있으면 좋겠다.
'LeetCode 문제 풀이' 카테고리의 다른 글
[LeetCode] 1721번 문제를 풀어보았다. (ft. java) (0) | 2022.04.04 |
---|---|
[LeetCode] 31번 문제를 풀어보았다. (ft. java) (0) | 2022.04.03 |
[LeetCode] 344번 문제를 풀어보았다. (ft. java) (0) | 2022.04.01 |
[LeetCode] 287번 문제를 풀어보았다. (ft. java) (0) | 2022.03.29 |
[LeetCode] 81번 문제를 풀어보았다. (ft. java) (0) | 2022.03.28 |