Post

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

🌈문제 링크

Desktop View

Desktop View

잠깐! sorted(a, b)는 오름차순 순서로 정렬합니다

<풀이 1>

1
2
3
4
5
6
7
def solution(strings, n):
    return sorted(strings, key = lambda x: x[n]+x)

== 같은 코드

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

sorted(strings, key = lambda x: x[n]+x)

  • strings를 key 방식으로 정렬
  • lambda(익명함수) —> 간단한 함수를 인라인으로 정의할 때 사용

    (def는 복잡한 함수 정의할 때)

  • x == 매개변수: 임의적으로 추가한 값 ex) 방정식 풀 때 x 사용

    (x 를 쓰든, a를 적든 bag를 적든 아무거나 상관 없다.)

<풀이 2>

1
2
3
4
5
6
7
8
9
10
11
def solution(strings, n):
    answer = []

    def sorted_key(x):
        return x[n] + x

    sorted_strings = sorted(strings, key=sorted_key)
    for x in sorted_strings:
        answer.append(x)

    return answer

<설명>

for x in sorted_strings: answer.append(x)

  • x가 sorted_strings에서 나올 수 있는 모든 문자열들 —>💡n(인덱스)가 0, 1, 2 경우, 잘 생각!

    n=0일때: [”bed”, “car”, “sun”]

    n=1일때: [”car”, “bed”, “sun”]

    n=2일때: [”bed”, “car”, “sun”]

    ◆ 이러한 문자열 각각 전부다 x에 대입한다는 것이다.

  • 그리고 그걸 answer[] 리스트에 추가 후, solution 함수의 return answer로 답 반환

Desktop View

  • solution 함수 내부에 sorted_key 함수를 생성해 작업하였다.

알게된 것

  • return 문이 없으면 def문의 결과를 반환하지 않는다.
This post is licensed under CC BY 4.0 by the author.
3D GIF