단순한 문제이지만 구현후 성능 문제가 있을 것이라 예상했고 dp등을 생각해보았지만 딱히 떠오지않아서
다른 사람들의 풀이를 참고했습니다.
구현 내용은 같으나 가장 긴 것부터 파악하도록 구현하면 2번도 통과가 가능합니다.
여기서 깨달은 것은 저도 가장 긴것부터 하면 된다는 것은 알았지만, 그러한 태도가 습관화되어있지는 않는 것같습니다. 문제에서 그런 사소한 점으로 정오답이 갈리게 해놨을까 이러한 생각을 무의식에 가지고 있기도 했던 것 같습니다.
쉬운 문제나 어려운 문제를 구분하지 않고 항상 최선의 코드를 짤 수 있는 사람이 되겠다는 생각이 들었습니다.
def isPalindrome(s):
ln = len(s)
i = 0
j = ln-1
con = True
while i<=j:
if s[i]!=s[j]:
con = False
break
i+=1
j-=1
return con
def solution(s):
answer = 1
c = False
for i in range(len(s),0,-1):
for j in range(0, len(s)):
splited_s = s[j:j+i]
if (j+i)>len(s):
continue
# print(i,j+1,splited_s)
if isPalindrome(splited_s):
answer = len(splited_s)
c = True
break
if c:
break
if c:
break
if len(s)==2:
if s[0]==s[1]:
answer = 2
return answer
'알고리즘' 카테고리의 다른 글
알고리즘 관련 주워둔 즐겨찾기 모음 (0) | 2022.07.08 |
---|---|
줄세우기 (위상정렬) (0) | 2021.07.03 |
KMP의 일부, computeLPS에 대해서 (KMP) (0) | 2021.06.19 |
문자열 겹치기(구현, KMP) (0) | 2021.06.18 |
숨바꼭질(다익스트라) (0) | 2021.06.18 |