[Python] 문자열 내 마음대로 정렬하기
자료구조 & 알고리즘ㅤ/ㅤ프로그래머스

[Python] 문자열 내 마음대로 정렬하기

문제

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

 

핵심스킬

  • 인덱싱
  • sort( )

 

풀이

def solution(strings, n):
    for i in range(len(strings)):
        strings[i] = strings[i][n] + strings[i]
        
    strings.sort()
    answer = list(strings[i][1:] for i in range(len(strings)))
    return answer
  • idea: 리스트의 각 원소의 n번째 글자를 맨앞으로 붙여서 sort하면 자동으로 나머지 글자 기준으로도 sorting 된다

 

Trial

def solution(strings, n):
    sorted(strings, key=lambda x: x[n])
    return answer
  • 문제점: n번째 글자 기준으로 sort했지만, 나머지 글자 기준으로 sorting은 할 수 없었다.

 

문제 링크

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