[프로그래머스 / Python] 문자열 묶기

Kun-Woo Kim·2025년 1월 7일

알고리즘 공부

목록 보기
15/24
post-thumbnail

문제 출처

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())  # 가장 큰 그룹의 크기 반환

결론 및 느낀점

이번 문제는 비교적 간단한 문제였으나, 딕셔너리 사용법을 헷갈리면서 결국 문자열의 길이를 배열에 저장한 후, 중복을 제거하여 각 길이의 개수를 다시 계산하는 방식을 선택했다. 딕셔너리를 사용하면 더 효율적으로 문제를 해결할 수 있는 문제를... 딕셔너리 사용법을 리마인드 하기 위해 기록을 남겨놓는다.

profile
안녕하세요, 김건우입니다! 웹과 앱 개발에 열정적인 전문가로, Next.js 14, Node.js, Express, Flutter 등을 활용한 프로젝트를 다룹니다. 제 블로그에서는 개발 여정, 기술 분석, 실용적 코딩 팁을 공유합니다. 창의적인 솔루션을 실제로 적용하는 과정의 통찰도 나눌 예정이니, 궁금한 점이나 상담은 언제든 환영합니다.

0개의 댓글