Algorithm/Baekjoon
[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의 파워풀함을 다시 한번 깨달았다.
사실 이 문제 풀 생각은 없었는데, 백준 승급까지 경험치가 아주 조금 남아서 지나가는 김에 후르륵 풀어봤다.