문제57: 팰린드롬 페어

Created
Feb 12, 2023 06:13 AM
Tags
 

문제


단어 리스트에서 words[i] + words[j]가 팰린드롬이 되는 모든 인덱스 조합(i,j)를 구하라
 

입력


["abcd", "dcba", "lls" "s", "sssll"]
 

출력


[[0,1], [1,0], [3,2], [2,4]]
 

풀이


  1. 브루트 포스 풀이 → 모든 조합을 계산해서 검증
    1. i, j를 돌면서 검증
    2. → O(n^2)는 타임아웃남!!
def is_palindrome(word): return word == word[::-1] def palindrome_pair(self, words): results = [] for i, front in enumerate(words): for j, rear in enumerate(words): if i != j and is_palindrome(front+rear): results.append([i,j]) return results
  1. 트라이를 활용한 팰린드롬 검증

새로운 개념