BAEKJOON /10814:나이순 정렬
[python] stable 정렬
stable 정렬에서는 입력 받은 값들 중에 같은 값이 있는 경우 해당 값의 순서를 그대로 유지한다. 예를 들어, [1, 2, 3(X), 4, 5, 3(Y)] 을 오름차순 정렬한다면, [1, 2, 3(X), 3(Y), 4, 5]순으로 세 번째 위치한 3의 위치와 여섯 번째 위치한 3의 위치가 바뀌지 않는다.
반대인 unstable 정렬에서는 정렬을 장담할 수 없다.
[python]lambda 매개변수 : 표현식
: member_lst.sort(key = lambda x : x[0])
-->매개변수는 x, member_lst를 x[0]을 기준으로 sort( )해라
<문제 설명>
나이 순으로 정렬한 후 나이가 같으면 들어온 순으로 정렬하라고는 되어있지만 사실상 나이 순으로만 정렬하면 되는 문제
<문제 풀이>
n = int(input())
member_lst = []
for i in range(n):
age, name = map(str, input().split())
age = int(age)
member_lst.append((age, name))
member_lst.sort(key = lambda x : x[0]) ## (age, name)에서 age만 비교
#member_lst.sort()로 쓰면 22 cba, 22 bca, 22 abc가 들어왔을 때 결과가 나이가 다 똑같으니까 들어온 순서대로 출력돼야 하는데 뒤에 알파벳도 정렬돼서 알파벳 순으로 출력됨
for i in member_lst:
print(i[0], i[1])
Author And Source
이 문제에 관하여(BAEKJOON /10814:나이순 정렬), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@kimnahee1529/BAEKJOON-10814나이순-정렬저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)