본문 바로가기

computer science/algorithm

sorted, sort()

문제를 풀다 보니, 당연히 sort()로 정렬해 반환할 수 있을 거라 생각했던 부분에서 None값이 나와 당황했다.

하지만 잘 생각해보니 sort()는 리스트 자체를 바꾸는 거고, 그걸 반환하려면 정렬 뒤 리스트를 반환하는게 맞구나.. 싶었다

 

1. 리스트명.sort()
  : 리스트형의 메소드이며, 리스트 원본 값을 직접! 수정함 . 반환 값은 None으로 정렬 값이 반환되지 않기 때문에 사용에 주의해야함

# 프로그래머스, 문자열 내 마음대로 정렬하기
def solution(strings, n):
    return strings.sort(key=lambda x:(x[n],x))
    
print(solution(["sun", "bed", "car"],1)) # 반환값 없음

 

2. sorted(리스트명)

  : 내장 함수로, 원본 값은 그대로이고 정렬 값을 반환함

# 프로그래머스, 문자열 내 마음대로 정렬하기
def solution(strings, n):
    answer = sorted(strings,key=lambda x:(x[n],x))
    return answer
    
print(solution(["sun", "bed", "car"],1)) # ["car", "bed", "sun"] 반환