해피 코딩!

[백준] 10814 나이순 정렬 본문

알고리즘

[백준] 10814 나이순 정렬

지속가능한 성장을 2020. 12. 28. 23:18
lst = []
for i in range(int(input())):
    age, name = input().split(' ')
    lst.append([int(age), name, i])



for i in sorted(lst, key = lambda x:(x[0], x[2])):
    print(i[0], i[1])

python은 내장 정렬 라이브러리로 list_data_type_var.sort()와 sorted(iterable_data_type_var)를 지원하며 key를 통해 정렬하는 순서를 설정할 수 있다.

  • .sort(): 참조하는 리스트의 메모리 값 자체가 정렬이 된다. 리스트 데이터 타입에서만 지원
  • sorted(): 정렬된 값을 돌려준다. iterable 한 데이터 타입 자체를 지원.

key는 함수에 대한 값을 정렬한다.

문제를 풀때에는 몰랐지만 정렬 함수들은 Stable sort을 지원한다.

이것의 뜻은 기본적으로 리스트에서 앞에 있던 원소는 정렬 후에도 앞에 있다는 정렬기준을 가진 것은 정렬하기 전의 순서와 정렬한 후의 순서가 동일하다는 것이다.

'알고리즘' 카테고리의 다른 글

[백준] 12865번 평범한 배낭  (0) 2020.12.30
[백준] 10989번 수 정렬하기 3  (0) 2020.12.28
[백준] 2231 분해합  (0) 2020.12.27
[프로그래머스] level 2 구명보트  (0) 2020.12.24
[백준] 로프 2217번  (0) 2020.12.24
Comments