코딩테스트/알고리즘

99클럽 코테 스터디 3일차 TIL + 문자열 내 마음대로 정렬하기

Porits789 2024. 7. 24. 19:19

 

오늘의 학습 키워드: Lambda & sorted

문제: 문자열 내 마음대로 정렬하기

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

풀이

조건에 맞추어 정렬해야 합니다.

생각해야 하는 조건은 두 가지입니다.

  1. index값으로 우선 정렬
  2. index위치의 값이 같은 값인 경우에 사전순 정렬

저는 index 바로 뒤의 값들로 정렬해야 하나 이랬습니다만.. 그냥 사전순 정렬하면 됩니다.

python의 sorted와 lambda를 같이 사용하면 빠르게 정렬이 가능합니다.

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

 

코드를 해석하자면 x[n] 값으로 정렬을 먼저 하고, 이후의 값들은 사전순으로 정렬하라는 의미입니다.

key값으로 여러 가지를 넣고 싶다면 괄호를 이용하면 편하게 사용가능합니다.

 

회고

sorted 사용 시에 lambda를 사용하는 방법이 조금은 가물가물했던 것 같습니다.

 

내일 학습할 것.

역시나 코딩테스트로 준비할듯합니다. 프로젝트 중이다 보니 복습 위주의 학습으로 진행하고 있습니다.