[프로그래머스/파이썬] Level 1 문자열 내 마음대로 정렬하기

bye9·2021년 4월 10일
0

알고리즘(코테)

목록 보기
104/130

https://programmers.co.kr/learn/courses/30/lessons/12915


문제풀이

주어진 조건을 만족하기 위해 딕셔너리를 활용하였다.

예 2의 경우, 정렬을 조건대로 해준 딕셔너리 결과는 다음과 같다. {'c': ['abcd', 'abce'], 'x': ['cdx']}

다음 딕셔너리를 리스트로 변환해주고 각 값들을 result에 넣어주면 정답이다.


프로그래머스에서 더 간단한 코드를 찾았다.
lambda식으로 strings의 문자열들을 n번째 글자를 기준으로 정렬하는 것이다.

소스코드

def solution(strings, n):
    
    dic={}
    for string in strings:
        dic[string[n]]=[]

    for string in strings:
        dic[string[n]].append(string)

    for i in dic:
        dic[i].sort()
    
    array=list(dic.items())
    array.sort()
    
    result=[]
    for i in array:
        for j in i[1]:
            result.append(j)
    return (result)

더 쉬운 코드

def solution(strings, n):
    strings.sort()
    return sorted(strings, key=lambda x: x[n])

0개의 댓글