260109 : [BOJ 1695] 팰린드롬 만들기 #2297
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
🚀 이슈 번호
Resolve: {#2293}
🧩 문제 해결
스스로 해결: ✅
🔎 접근 과정
투포인터 방식을 채택하여 팰린드롬을 계산한다.
s == e 인 경우, 여기서는 추가 삽입이 필요 없으므로 s + 1, e - 1로 재귀 접근
s != e 인 경우, 왼쪽에 같은 숫자를 삽입하는 경우 (s, e - 1) | 오른쪽에 같은 숫자를 삽입하는 경우 (s + 1, e)로 분류하여 재귀 접근
을 진행한다.
또한 중복 계산되는 부분이 발생할 수 있으므로 dp를 start / end까지의 연산 결과를 저장하도록 한다.
⏱️ 시간 복잡도
O(N ^ 2)재귀를 이용하여 s->e로 가는 케이스, e->s로 가는 케이스를 커버하고 있으므로
중복되어 계산하는 부분이 생략된다.
따라서 N^2 시간복잡도가 소요된다.
💻 구현 코드