문제 링크
https://programmers.co.kr/learn/courses/30/lessons/12904
코딩테스트 연습 - 가장 긴 팰린드롬
앞뒤를 뒤집어도 똑같은 문자열을 팰린드롬(palindrome)이라고 합니다. 문자열 s가 주어질 때, s의 부분문자열(Substring)중 가장 긴 팰린드롬의 길이를 return 하는 solution 함수를 완성해 주세요. 예를들
programmers.co.kr
풀이
- 괜히 이분 탐색 사용해서 풀려다가 시간 더 쓴 문제..
- 인덱스 증가시키면서 모든 경우의 수 탐색
-
def solution(s): answer = 0 for i in range(len(s)): for j in range(i+1, len(s)+1): # 팰린드롬이라면 if check(s[i:j]): # 길이 긴 걸로 갱신 answer = max(answer,len(s[i:j])) return answer def check(x): # 좌우 대칭인지 확인 if x == x[::-1]: return True
'개발 > algorithm' 카테고리의 다른 글
[프로그래머스][level3] 숫자 게임 -python (0) | 2022.01.11 |
---|---|
[프로그래머스][level3] 기지국 설치 -python (0) | 2022.01.11 |
[프로그래머스][level3] 섬 연결하기 - python(크루스칼 알고리즘) (0) | 2022.01.11 |
[프로그래머스][level3] 징검다리 건너기 -python (0) | 2022.01.11 |
[프로그래머스][level3] 단속카메라 - python (0) | 2022.01.10 |