Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- Docker
- 클라우드 컴퓨팅
- aws
- springboot
- 인천여행
- VPC
- 백준
- 스프링 부트
- JPA
- 오일러프로젝트
- 쿠버네티스
- 카프카
- 자료구조
- DFS
- 백트래킹
- Kafka
- 코드업
- 알고리즘
- Apache Kafka
- Spring Boot
- 스프링
- gcp
- 로드밸런서
- 월미도
- Elasticsearch
- 스프링부트
- 프로그래밍문제
- Spring
- Spring Data JPA
- 클라우드
Archives
- Today
- Total
GW LABS
[LeetCode] Palindromic Substrings 본문
Palindrome string은 뒤집었을 때에도 같은 순서를 갖고 있는 문자열이다. 우리말로는 '회문'이라고 한다. palindrome을 가지고 다양한 문제를 만들어낼 수 있는데, 문자열 뿐만 아니라 연결리스트 등 다양한 자료구조의 기본지식을 판단할 수 있는 문제이다. 해당 문제는 부분 문자열에서 palindrome을 찾는 문제였다.
class Solution:
def countSubstrings(self, s: str) -> int:
result = 0
for length in range(1, len(s) + 1):
idx_start = 0
idx_end = length
while idx_end <= len(s):
now_string = s[idx_start:idx_end]
if now_string == now_string[::-1]:
result += 1
idx_start += 1
idx_end += 1
return result
단순하게 생각해서 길이 별로 모든 부분 문자열을 생성해내고(시작 인덱스가 다르다면 중복을 허용) 문자열을 뒤집어서 원래 문자열과 같은지 확인하면 된다. 이런 문제를 접근할 때 항상 인덱스를 계산하는게 어렵게 느껴져 기록을 해봤다. 또 이렇게 접근하기 전 O(N^2)으로 풀릴지 확인해봐야 하는데, 입력이 1000밖에 되지 않아 이 방법으로 해결했다.
'Algorithm & DataStructure' 카테고리의 다른 글
C++로 구현하는 자료구조 (3) - HashMap (0) | 2020.09.14 |
---|---|
[LeetCode] Decode String (0) | 2020.09.10 |
C++로 구현하는 자료구조 (2) - LinkedList (0) | 2020.09.05 |
C++로 구현하는 자료구조 (1) - ArrayList (0) | 2020.09.03 |
[코드업 3002] 기억력 테스트 3 (0) | 2020.09.01 |
Comments