반응형
https://school.programmers.co.kr/learn/courses/30/lessons/12904
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
def solution(s):
result = []
for i in range(len(s)):
for j in range(i, len(s)):
sub = s[i:j+1]
if sub == sub[::-1]:
result.append(len(sub))
return max(result)
주어진 문자열(s)의 부분문자열(Substring)을 구하는 문제입니다.
부분문자열을 구하는 방법을 저는 완전탐색(O(n**2))의 코드를 작성하여 문제를 해결하였습니다.
문자열의 인덱스를 하나씩 늘려가면서 부분문자열을 만들어 팰린드롬인지 확인하게 됩니다.
이게 무슨말인가 하면
주어진 문자 s = "abcdcba"라고 가정하고
i = 0일때
"a" : s[0:1]
"ab" : s[0:2]
"abc" : s[0:3]
"abcd" : s[0:4]
...
i = 1일때
"b" : s[1:2]
"bc" :s[1:3]
...
...
i = 5일때
"ba" : s[5:7]
i = 6일때
"a" : s[6:7]
까지 모든 부분문자열이 팰린드롬인지 확인합니다.
이때 확인한 부분문자열이 팰린드롬일 경우에는 부문문자열의 크기를 result 리스트에 저장하고
반복문이 모두 종료가 되면 max(result)로 부문문자열의 크기가 가장 큰 값을 반환합니다.
반응형
'코딩테스트' 카테고리의 다른 글
[코딩테스트] 프로그래머스 메뉴 리뉴얼 파이썬(Python) (0) | 2023.01.05 |
---|---|
[코딩테스트] 프로그래머스 [3차] 압축 파이썬(Python) (0) | 2023.01.05 |
[코딩테스트] 프로그래머스 더 맵게 파이썬(Python) (0) | 2023.01.03 |
[코딩테스트] 프로그래머스 스킬트리 파이썬(Python) (0) | 2023.01.01 |
[코딩테스트] 프로그래머스 방문 길이 파이썬(Python) (0) | 2022.12.31 |