문제

문제

처음 작성한 코드

def solution(strings, n):
    answer = []
    a = sorted([i[n] for i in strings],reverse=False)
    strings = sorted(strings,reverse=False)
    s = [1]*len(strings)
    for i in a:
        for idx,j in enumerate(strings):
            if j[n]==i and s[idx]==1:
                answer.append(j)
                s[idx] = 0
                break
    return answer

 

코드 리뷰 후

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

 

깨달은 점

lambda의 사용법을 알게되었다.
sorted의 key를 통해 기준점을 잡고 정렬할 수 있다는 것을 알게되었다.
lambda는 lambda parameter_list:expression 이런 식으로 쓰이는 데, 위의 문제에서는 문자열의 n번째 인덱스를 기준으로 정렬하면 되기 때문에 lambda x:x[n] 이런식으로 사용하면 된다.
어렵다..

'Programmers' 카테고리의 다른 글

나누어 떨어지는 숫자 배열  (0) 2020.12.29
수박수박수박수박수박수?  (0) 2020.12.29
서울에서 김서방 찾기  (2) 2020.12.28
가운데 글자 가져오기  (0) 2020.12.28
문자열 다루기 기본  (0) 2020.12.28