[BOJ 10814][백준 10814번] 나이순 정렬 (파이썬 풀이)

도깨비젤리

·

2021. 6. 2. 01:13

https://www.acmicpc.net/problem/10814

 

🤔 문제 설명 및 입출력


 

 

 접근 방법


파이썬은 sort 함수가 매우매우매우 잘 만들어져 있다. 팀 소트를 사용해서 속도도 굉장히 빠르고, 정렬의 key 값으로 익명함수 lambda를 적용해서 개발자 입맛대로 정렬을 시킬 수 있다.

 

쉽게 말해서, 입력을 하나의 리스트로 몰아넣은 다음, sort와 lambda를 이용해서 깔끔하게 정리하면 된다.

 

 

👨‍💻 소스 코드


  • 파이썬

 

N = int(input())
lst = []
for idx in range(N):
    age,name = input().split()
    age = int(age)
    lst.append((age,name,idx))

lst = sorted(lst,key= lambda x : [x[0],x[2]])

for elem in lst:
    print('{0} {1}'.format(elem[0],elem[1]))

입력이 가입한 순서로 주어지므로, 리스트에 입력을 집어 넣을 때 임시 변수 idx를 가입한 순서를 뜻하는 요소로 같이 삽입해준다.

 

이후 lambda를 이용해 1순위 : 나이  / 2순위 : 가입 순서 로 정렬한 후, 출력한다.

 

🔥 강평


sort with lambda의 파워풀함을 다시 한번 깨달았다.

 

사실 이 문제 풀 생각은 없었는데, 백준 승급까지 경험치가 아주 조금 남아서 지나가는 김에 후르륵 풀어봤다.