[코딩테스트] 프로그래머스 - 가장 긴 팰린드롬(Java)

proman·2022년 9월 22일
1

Coding-Test

목록 보기
19/21
post-thumbnail

💎 설명

레벨: 3
언어: 자바(Java)

👜 느낀점

해당 문제는 알고리즘이랑 자료구조 필요없이 루프돌리면 구할수 있는문제이다.

이 문제를 풀때 효율성에 몇번 걸렸었는데 주의할점이 있다.

  • String substring() or StringBuilder reverse() 사용하면 효율성1번에서 계속 걸립니다.(둘다 구현된걸 사용하지말고 직접 해야됩니다)

풀이방법
1. 큰범위 부터 줄여나가는식 루프
2. 인덱스가 0인것 부터 시작하는 루프
3. 해당 문자열값 시작순서, 끝순서 문자값 구해서 계속비교 시도필요
(원래 reverse()사용하다가 효율성에서 계속걸렸습니다 쩝)

좋아요 받은 코드가 없어서 제가 작성한 것만 올립니다...

⛳ 내가 작성한 코드

class Solution {
    public int solution(String s) {
        
        for(int i = s.length(); i > 0; i--) {
            for(int j = 0; j+i <= s.length(); j++) {
                if(isPalindrome(s, j, j+i-1)) return i;
            }
        }

        return 0;
    }
    
    boolean isPalindrome(String value, int start, int end) {
        while(start <= end) {
            if(value.charAt(start++) != value.charAt(end--)) return false;
        }
        return true;
    }
}

0개의 댓글