
https://school.programmers.co.kr/learn/courses/30/lessons/181855
문자열 배열 strArr이 주어집니다. strArr의 원소들을 길이가 같은 문자열들끼리 그룹으로 묶었을 때 가장 개수가 많은 그룹의 크기를 return 하는 solution 함수를 완성해 주세요.
def solution(strArr):
len_arr = [len(i) for i in strArr] # 각 문자열의 길이를 계산
counted_arr = [] # 길이별 문자열의 개수를 저장할 리스트
for i in set(len_arr): # 중복을 제거한 각 길이에 대해서
counted_arr.append(len_arr.count(i)) # 해당 길이를 가진 문자열의 개수를 counted_arr에 추가
return max(counted_arr) # 가장 큰 그룹의 크기 반환
def solution(strArr):
d = {} # 딕셔너리 초기화
for i in strArr: # 주어진 배열의 각 요소에 대해
d[len(i)] = d.get(len(i), 0) + 1 # 길이를 키로, 해당 길이의 문자열 개수를 값으로 저장
return max(d.values()) # 가장 큰 그룹의 크기 반환
이번 문제는 비교적 간단한 문제였으나, 딕셔너리 사용법을 헷갈리면서 결국 문자열의 길이를 배열에 저장한 후, 중복을 제거하여 각 길이의 개수를 다시 계산하는 방식을 선택했다. 딕셔너리를 사용하면 더 효율적으로 문제를 해결할 수 있는 문제를... 딕셔너리 사용법을 리마인드 하기 위해 기록을 남겨놓는다.