코딩 테스트/프로그래머스

[Python] 프로그래머스 lv.0 문자열 묶기

위시리 2024. 11. 25. 03:06

 

문제 분석

  • 주어진 배열에서 문자열의 길이가 같은 문자열 끼리 그룹으로 묶었을 때 가장 개수가 많은 그룹의 크기 return

 

정답 코드

def solution(strArr):
    answer = 0
    dic = {}
    for i in range(len(strArr)):
        if len(strArr[i]) in dic.keys() : 
            dic[len(strArr[i])] += 1
        else : 
            dic[len(strArr[i])] = 1
    
    answer = max(dic.values())
    return answer

 

다른 사람 코드 1

def solution(strArr):
	d = {}
    for i in strArr:
    	d[len(strArr)] = d.get(len(i), 0) + 1
    return max(d.values())
  • 딕셔너리 자료형에서 값을 꺼내는 2가지 방법
  • dict['a'] vs dict.get('a')
    • 1. dict['a'] : 만약 dict 딕셔너리에 'a'라는 키 값이 없다면 KeyError
    • 2. dict.get('a') : 만약 dict 딕셔너리에 'a'라는 키 값이 없다면 key에 대해 예외를 던지지 않고, none 리턴
  • dict.get('a', '디폴트 값')
    • 딕셔너리 안에 찾으려는 key가 없을 경우, 디폴트 값을 대신 가져온다.

 

다른 사람 코드 2

from collections import Counter

def solution(strArr):
	return Counter(map(lamdba x : len(x), strArr)).most_common(1)[0][1]