Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 코딩테스트
- 7568
- 카카오클라우드스쿨
- node
- 백준
- Spring #Java #Spring Boot #싱글톤
- 15552
- Spring #Spring Boot #Java
- Spring
- sequelize
- SpringTokenizer
- 9020
- java
- Java #오븐시계 #백준
- 알고리즘
- 1110
- 카카오 클라우드 스쿨
- boj
- 11053
- Java #백준 #코딩테스트
- Spring #Java #Spring Boot
- 24479
- Spring #Java #Spring Boot #@BeforeEach #@AfterEach
- python
- 파이썬
- Java #코딩테스트
- kakaocloud
- 11054
- 2447
- kakaocloudschool
Archives
- Today
- Total
YoungSoo
프로그래머스 - 가장 긴 펠린드롬(Python 풀이) 본문
문제 설명 👨🏻💻
앞뒤를 뒤집어도 똑같은 문자열을 팰린드롬(palindrome)이라고 합니다.
코드 구현 👨🏻💻
- 알고리즘 종류: 문자열
- 시간복잡도: O(N^2)
def solution(s):
answer = ''
for i in range(len(s)):
for j in range(i+1, len(s)+1):
# 특정 문자열을 나타내기 위한 슬라이싱
a=s[i:j]
# 문자열을 뒤집고 가장 긴 문자열을 answer 변수에 대입
if a == a[::-1] and len(a) > len(answer):
answer = a
return answer
풀이 방법 👨🏻💻
- 1차 시도
- 문자열
- 최종
- answer 변수를 빈 문자열으로 초기화합니다. 이 변수는 가장 긴 팰린드롬의 길이를 저장할 것입니다.
- **for**문을 사용하여, 문자열 s 내의 모든 부분 문자열(substring)을 검사합니다. **i**는 시작 인덱스, **j**는 끝 인덱스를 나타냅니다. 이때 **j**는 **i**보다 크게 설정하여 중복 검사를 피합니다.
- 현재 검사 중인 부분 문자열 **a**가 팰린드롬인지 검사합니다. 이때 **[::-1]**을 사용하여 문자열을 뒤집은 후, 원래 문자열과 비교합니다. 만약 **a**와 뒤집은 **a**가 같다면, 즉 **a**가 팰린드롬이라면 **answer**를 **len(a)**와 answer 중 큰 값으로 업데이트합니다.
- 모든 부분 문자열을 검사한 후, answer 값을 반환합니다.
- 문자열
'코딩테스트' 카테고리의 다른 글
프로그래머스 - [3차] 압축 (Python 풀이) (0) | 2023.03.13 |
---|---|
프로그래머스 - 피로도(Python 풀이) (0) | 2023.03.12 |
백준 - 숨바꼭질 3(13549 Python 풀이) (0) | 2023.02.26 |
백준 - 알고리즘 수업 - 깊이 우선 탐색 1(24479번 Python 풀이) (1) | 2023.02.13 |
백준 - 가장 긴 증가하는 부분 수열2(12015 Python 풀이) (0) | 2023.02.09 |