Data miner
#정렬 #문자열정렬 #튜플활용
carayoon
2019. 9. 26. 12:27
728x90
문제 - 단어로 구성된 리스트를 받아서, 예) ["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=튜플의 몇번째 값을 사용할 건지)