728x90
https://school.programmers.co.kr/learn/courses/30/lessons/12904#qna
팰린드롬이란 뒤집어도 같은 문자열이 되는 것을 말한다. aba , aaa 같은 경우가 팰린드롬이다.
나 같은 경우는 이 문제를 단순 반복문으로 풀어냈는데 효율성 테스트도 잘 통과되었다. 그러나 마나커? 마나허? 알고리즘을 사용하는 문제라고 한다. 다음에 한번 정리를 하는 것으로 하자
#include <iostream>
#include <string>
using namespace std;
int solution(string s)
{
int answer = 1;
if(s.size() == 1) return 1;
for(int i = 0; i < s.size(); i++){
int left = i - 1;
int right = i + 1;
int tmp = 0;
while(left > -1 && right < s.size()){
if(s[left] == s[right]) tmp++;
else break;
left--;
right++;
}
answer = max(answer, tmp * 2 + 1);
left = i - 1;
right = i;
tmp = 0;
while(left > -1 && right < s.size()){
if(s[left] == s[right]) tmp++;
else break;
left--;
right++;
}
answer = max(answer, tmp * 2);
}
return answer;
}
'프로그래머스 풀이 > Lv 3' 카테고리의 다른 글
[프로그래머스LV3] 순위 (C++) (0) | 2024.10.22 |
---|---|
[프로그래머스 SQL] 헤비 유저가 소유한 장소 (0) | 2024.10.21 |
[프로그래머스LV3] 연속 펄스 부분 수열의 합 (C++) (0) | 2024.10.19 |
[프로그래머스SQL] 조회수가 가장 많은 중고거래 게시판의 첨부파일 조회하기 (0) | 2024.10.19 |
[프로그래머스LV3] 파괴되지 않은 건물 (0) | 2024.10.18 |