[Algorithm] 4주차 3번 문제

김상웅·2022년 6월 29일
0

✅ 문제


인자로 문자열이 주어졌을 때, 같은 알파벳으로 이루어진 단어끼리 묶어주는 프로그램을 작성해주세요.

output에서 순서는 상관없습니다.

Input: ["eat", "tea", "tan", "ate", "nat", "bat"],
Output:
[
  ["ate","eat","tea"],
  ["nat","tan"],
  ["bat"]
]


📌 풀이


이번 풀이에서는 딕셔너리를 활용하여 풀었습니다.

#1 우선 문자열의 각 단어를 오름차순으로 정렬하여 튜플 형태로 만들어줍니다.

#2 딕셔너리의 key 값으로는 해당 튜플을 넣어줍니다.

#3 딕셔너리의 value 값으로는 튜플에 해당하는 단어를 배열의 원소로 넣어줍니다.

#4 생성된 딕셔너리에서 value 값만 뽑아 반환합니다.

코드를 통해 알아보겠습니다.

def groupAnagrams(strs):
  	arrnage_dict = {}
  	result = []
  
  
  	for i in range(len(strs)):
    	#1
    	result_k = tuple(sorted(strs[i]))
	
    	#2
    	if result_k not in arrnage_dict:
      		arrnage_dict[result_k] = [strs[i]]
    	else:
      		arrnage_dict[result_k] += [strs[i]]
	#3
	for value in arrnage_dict.values():
    	result.append(value)
	
    #4
  	return result
profile
누구나 이해할 수 있도록

0개의 댓글