<가장 긴 팰린드롬>
문제(출처: https://school.programmers.co.kr/learn/courses/30/lessons/12904)
문제 풀이
- my solution
def solution(s):
answer = 1 # 문자열 길이 1
for i in range(len(s)-1): # 모든 경우의 수 - 문자열
for j in range(i,len(s)):
temp=s[i:j+1]
if temp==temp[::-1]: # 팰린드롬 확인
if answer<len(temp): # 가장 긴 길이
answer=len(temp)
return answer
1) 문자열 길이가 1일 때 answer=1
2) 2중 for문 통해 문자열의 모든 경우의 수 찾기
- 팰린드롬(앞뒤를 뒤집어도 똑같은 문자열) 확인
- 가장 긴 길이 찾기
생각🤔
처음에 문제를 풀었을 때 정확성에서 1문제 실패와 효율성에서 실패가 떴었다.
정확성에서의 실패의 이유로는 문자열의 길이가 1일 때 answer을 1로 바꾸지 않아서였다.
처음에 조건을 생각했긴 했지만 코드를 고치는 과정에서 빼먹은 것이었다..!
효율성의 실패의 이유로는 팰린드롬을 확인하는 과정에서의 for문 사용 때문이었다.
for문을 사용하여 앞 뒤로 같은지 확인하는 방식으로 하니 시간 초과가 떴다.
단순하게 생각하면 팰린드롬은 앞뒤를 뒤집어도 똑같은 문자열로 그냥 문자열을 뒤집어 같은지 확인하면 되는 것이었다.
(소름)
Level 3인 문제였지만 연습문제라 그런지 생각보다 빨리 풀 수 있었다.
출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges
'🌞Algorithm > 🔥programmers' 카테고리의 다른 글
| [programmers] SUM,MAX,MIN문 - SQL 고득점 Kit (0) | 2022.01.15 |
|---|---|
| [programmers] SELECT문 - SQL 고득점 Kit (0) | 2022.01.12 |
| [programmers] [3차] 방금그곡 - 2018 KAKAO BLIND RECRUITMENT (0) | 2021.12.02 |
| [programmers] 피로도 - 위클리 챌린지 (0) | 2021.12.01 |
| [programmers] 124 나라의 숫자 (0) | 2021.12.01 |