Algorithm

[프로그래머스] 문자열 내 마음대로 정렬하기

salmon16 2021. 2. 24. 23:04

출처 : 코딩테스트 연습 - 문자열 내 마음대로 정렬하기 | 프로그래머스 (programmers.co.kr)

 

코딩테스트 연습 - 문자열 내 마음대로 정렬하기

문자열로 구성된 리스트 strings와, 정수 n이 주어졌을 때, 각 문자열의 인덱스 n번째 글자를 기준으로 오름차순 정렬하려 합니다. 예를 들어 strings가 [sun, bed, car]이고 n이 1이면 각 단어의 인덱스 1

programmers.co.kr

풀이 방법

lambda 함수를 사용하여 정렬을 하면 간단하게 풀이할 수 있다.

같은 문자가 2개 이상이면 같은 문자를 가지는 단어끼리는 사전 순으로 앞선 문자열이 앞쪽에 위치하도록 해야 하는데

이런 경우를 해결하기 위해 미리 lambda 함수를 사용 전 사전 순으로 정렬을 한 후 lambda 함수와 sort함수를 한 번 더 사용하여 원하는 위치의 문자열 순으로 정렬하였다.

이 문제의 핵심은 미리 한번 정렬을 한 후 lambda 함수를 사용하여 정렬을 하는 것이다.

def solution(strings, n):
    answer = []        
    for i in range(len(strings)):        
        answer.append(strings[i])  
    ## 한번 정렬
    answer.sort()
    ## 원하는 위치를 기준으로 lambda함수를 사용하여 정렬
    answer.sort(key = lambda x:x[n])
    return answer