-
#정렬 #문자열정렬 #튜플활용Data miner 2019. 9. 26. 12:27728x90
문제 - 단어로 구성된 리스트를 받아서, 예) ["cat", "bat", "rat", "arts", "tab", "tar", "car", "star"]
철자 순서만 바뀐 문자열이 서로 인접하도록 단어들을 배열하여 정렬하는 메서드를 작성하기
예) ['bat', 'tab', 'car', 'cat', 'arts', 'star', 'rat', 'tar']
def group_anagrams(strings): #(Cara, ['a','a','c','r'])의 튜플로 구성된 리스트가 만들어진다. pairs = [(s, sorted(s)) for s in strings] # 튜플의 p[1]의 요소가 문자열이 정렬된 상태이므로 이를 활용해서 단어를 재정렬하는데 사용한다 pairs.sort(key=lambda p: p[1]) # 최종적으로는 p[0]로 구성된 리스트를 return하게 한다. return [p[0] for p in pairs]
#주의해야 할 점은 tuple구조를 sort할 때, 튜플.sort(key=튜플의 몇번째 값을 사용할 건지)
'Data miner' 카테고리의 다른 글
#이진탐색 #행렬이라면? (0) 2019.10.02 [선형탐색/이진탐색] 탐색 기법 비교 (0) 2019.09.30 #재귀 (0) 2019.09.24 [자료구조] [Greedy_Algorithm] 개념 및 예시 문제 (0) 2019.09.18 #Dynamic_programming #예시문제 (0) 2019.09.14