본문 바로가기
미해결

[미해결] python sort lambda 결과 의문점

by 천뿌니 2021. 12. 1.
728x90

2021.11.24 - [알고리즘/baekjoon] - [알고리즘/baekjoon] 1931_회의실 배정(python)

 

[알고리즘/baekjoon] 1931_회의실 배정(python)

문제 https://www.acmicpc.net/problem/1931 1931번: 회의실 배정 (1,4), (5,7), (8,11), (12,14) 를 이용할 수 있다. www.acmicpc.net # 그리디 알고리즘의 대표적인 유형으로서, 대부분은 입력값에 정렬을 시도..

wnstjrdl.tistory.com

위 문제에서 의문점을 들어서 포스팅합니다.

list.sort(key = lambda x : (x[0], x[1])) 

위와 아래의 의미가 같은걸로 알고있는데, 결과값은 다르더군요. 이유를 아시는 분 계신가요 ?

list.sort(key = lambda x : (x[0]) 

list.sort(key = lambda x : (x[1]) 

 

예를 들어

a = [[1,3],[8,5],[8,4],[0,3],[11,14],[3,8],[4,7],[1,5],[3,5]]

a.sort(key=lambda x:(x[1],x[0])) 
print(a)
a.sort(key=lambda x:(x[0],x[1]))
print(a)
a.sort(key=lambda x:x[0])
a.sort(key=lambda x:x[1])
print(a)
a.sort(key=lambda x:x[1])
a.sort(key=lambda x:x[0])
print(a)

위의 print 결과 값

list.sort(key = lambda x : (x[0], x[1]))  -> 시작시간(x[0])으로 정렬 후 끝나는 시간(x[1])으로 정렬하라는 의미인데

아래처럼 연속으로 쓰는 것도 시작시간으로 정렬 후 끝나는 시간으로 정렬하라는 의미가 아닌가요 ?

list.sort(key = lambda x : (x[0])

list.sort(key = lambda x : (x[1])

 

결과 값을 보시면 오히려 아래 코드들이 같다는 걸 볼 수 있습니다.

list.sort(key = lambda x : (x[0], x[1])) 

 

list.sort(key = lambda x : (x[1])

list.sort(key = lambda x : (x[0])

 

내부적인 함수 문제인지, 계산차이 인건지, 문법 문제인지 정말 모르겠네요..

혹시 아시는 분 있으시면 댓글좀 남겨주시면 감사하겠습니다

댓글