알고리즘/프로그래머스
[프로그래머스] 가장 긴 팰린드롬 자바(Java) 풀이 및 해설
승민아
2024. 5. 21. 13:47
https://school.programmers.co.kr/learn/courses/30/lessons/12904#qna
풀이 방법
팰린드롬의 길이를 "1 ~ s의 길이"로 설정해 놓고 반복문을 통해
시작 위치부터 종료 위치까지 팰린드롬인지 확인하면 된다.
전체 코드
import java.util.*;
class Solution
{
public int solution(String s)
{
int answer = 0;
for(int i=s.length(); i>=1; i--) { // 검사할 팰린드롬 길이
for(int j=0; j<=s.length()-i; j++) { // 시작 위치
int cnt = 0;
int start = j; // 시작 위치
int end = j+i-1; // 끝 위치
boolean flag = true; // 팰린드롬 가능 여부
while(start <= end) {
if(s.charAt(start) != s.charAt(end)) {
flag = false;
break;
}
start++;
end--;
}
// 팰린드롬 길이가 긴 것부터 탐색하므로 첫 탐색이 최대 길이임
if(flag) {
return i;
}
}
}
return answer;
}
}