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

꿈틀이·2023년 1월 4일
0

알고리즘 - 기초

목록 보기
9/21
def solution(strings, n):
    answer = sorted(strings, key = lambda x : (x[n],x))
    return answer

엄청난 난항을 겪은 문제다 😢

1. sorted 함수 속의 lambda

처음 접근을 한 방법은

def solution(strings, n):
    for i in range(len(a)):
		sorted(a, key = lambda x : a[i][n])
    return answer

a[i][j]에 접근하기 위해선 c언어에서 저런 느낌으로 접근을 해왔었기 때문이다!
하지만 무슨 이유에선지 out of range가 엄청나게 떴다

왜 key의 값을 a[i][n]이 아닌 a[n]으로만 둬도 접근이 가능한건지 이해가 안 갔다

이유

c언어로 sort를 할때 우리는 주로 이중 포문을 직접 작성한다.
하지만 python에서는 sorted라는 함수 하나만으로 해결이 된다.
sorted라는 함수 안에 for문이 내장되어 있다는 느낌으로 이해하면 될 것 같다!
sorted의 첫번째 인자를 보고 각 자료형에 맞게끔 접근하는 것이다. 따라서 위의 문제와 같이 이차원 배열일 경우, 람다에게 그냥 주어지는 것이 아닌 a[0], a[1], a[2]...이 인자로 넘어간다고 받아 들이면 될 것 같다. 따라서 a[i][n]으로 접근하지 않고 람다식 속에선 a[n]으로만 둬도 a[i]가 주어졌기에 접근이 가능했던 것이다!!

2. sorted함수 key 의 기본값은 사전식 정렬이다

key 의 기본값은 사전식 정렬이다!
따라서 key = lambda x : x로 두면 사전식으로 정렬이 되는 것이다

후움 기본값이 무엇인지 아는 것 또한 정말 중요한 것 같다

profile
안녕하세용🤓

0개의 댓글