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

Sunghun📈·2021년 4월 13일
0

프로그래머스

목록 보기
32/93
post-thumbnail

문제 설명

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

제한 사항

  • strings는 길이 1 이상, 50이하인 배열입니다.
  • strings의 원소는 소문자 알파벳으로 이루어져 있습니다.
  • strings의 원소는 길이 1 이상, 100이하인 문자열입니다.
  • 모든 strings의 원소의 길이는 n보다 큽니다.
  • 인덱스 1의 문자가 같은 문자열이 여럿 일 경우, 사전순으로 앞선 문자열이 앞쪽에 위치합니다.

입출력 예

접근법

최근 코딩도장에서 배웠던 lambda가 생각났던 문제다.

레벨 1에 많은 문제를 풀면서 이제는 머리속으로 그림이 그려지는 단계다

하지만, 문제는 쉽게 풀리지 않았고 1시간 30분 정도를 고생했다.

문제는 동일한 알파벳이 존재할 경우 정렬 방식이었다.

굉장히 어렵게 생각하여 코드로 풀어내려다 보니 많은 시간이 걸렸다.

결국에는 해결하지 못하나 싶었는데 발상의 전환이 문제를
해결하는 실마리를 주었다.

전체를 먼저 오름차순으로 정렬하고 그 뒤에 key값으로 lambda함수를
이용함으로써 문제는 해결되었다.😎😊

=============================================================

def solution(strings, n):
    return sorted(sorted(strings), key=lambda x: x[n])
profile
데이터 분석과 AI 분야의 전문가를 꿈꾸는 청년

0개의 댓글