-
[프로그래머스] 가장 긴 팰린드롬 (07.31)algorithm/프로그래머스 2020. 7. 31. 15:13
문제
https://programmers.co.kr/learn/courses/30/lessons/12904
접근법
팰린드롬이 되기 위해선 두 가지 경우의 수가 있다.
aba 처럼 홀수개인 경우
abba 처럼 짝수개인 경우
checkOdd 메서드를 통해서 홀수개인 경우를 체크하고
checkEven 메서드를 통해서 짝수새인 경우를 체크한다.
그 경우 중의 큰 값이 asnwer에 저장되게 된다.
코드
class Solution{ public int solution(String s) { int answer = 0; for(int i=0;i<s.length();i++){ answer = Math.max(answer, Math.max(checkOdd(i, s), checkEven(i,s))); } return answer; } private int checkOdd(int i, String s){ int cnt = 0; for(int j=i, k=i; j>=0 && k<s.length(); j--, k++){ if(s.charAt(j) == s.charAt(k)) cnt++; else break; } return cnt*2-1; } private int checkEven(int i, String s){ int cnt = 0; for(int j=i, k=i+1;j>=0 && k<s.length(); j--, k++){ if(s.charAt(j) == s.charAt(k)) cnt++; else break; } return cnt*2; } }
'algorithm > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 방문길이 (08.02) (0) 2020.08.02 [프로그래머스] 멀리 뛰기 (08.01) (0) 2020.08.01 [프로그래머스] 저울 (07.30) (0) 2020.07.30 [프로그래머스] 입국심사 (07.29) (0) 2020.07.29 [프로그래머스] 이중우선순위큐 (07.28) (0) 2020.07.28