https://www.acmicpc.net/problem/10814
10814번: 나이순 정렬
온라인 저지에 가입한 사람들의 나이와 이름이 가입한 순서대로 주어진다. 이때, 회원들을 나이가 증가하는 순으로, 나이가 같으면 먼저 가입한 사람이 앞에 오는 순서로 정렬하는 프로그램을
www.acmicpc.net
이 문제는 회원들을 나이가 증가하는 오름차순으로 정렬한 뒤, 나이가 같으면 먼저 가입한 순서(이것도 오름차순)으로 정렬한다. 다중 조건으로 정렬하는 문제인데, 익명함수 람다(lambda)를 사용해서 풀었다.
users = dict()
n = int(input())
for i in range(n):
age, name = input().split()
users[i] = (int(age), name)
sorted_users = sorted(users.items(), key= lambda x : (x[1][0],x[0]))
for i in range(len(sorted_users)):
age, name = sorted_users[i][1]
print(f'{str(age)} {name}')
람다는 잘 사용하지 않았는데 다중정렬 문제는 대부분 람다로 푸는 것 같았다.(다른 방법은 아직 본 적이 없는데 공부하다 보면 알게되겠지..!) 답은 풀어냈지만 사실 람다가 제대로 이해되지 않아서 추가로 공부해서 따로 포스팅 했다.
https://y00n-lee.tistory.com/25
파이썬 다중 정렬과 익명함수 람다(lambda)
파이썬 list.sort()와 sorted() 파이썬의 정렬은 list.sort()와 sorted()를 주로 사용한다. list.sort()는 리스트에 내장된 함수로 리스트에서만 쓸 수 있다. 반면에 sorted()는 리스트뿐만 아니라 딕셔너리나 튜.
y00n-lee.tistory.com
'개발 > 알고리즘' 카테고리의 다른 글
[백준 4375]1 - 파이썬 풀이 (0) | 2021.12.05 |
---|---|
[프로그래머스 12899]124 나라의 숫자 - 파이썬 풀이 (0) | 2021.11.04 |
[알고리즘] 최대공약수, 최소공배수 - 파이썬 (0) | 2021.06.24 |
[알고리즘] 소수 판별하기 - 파이썬 (0) | 2021.06.24 |
[자료구조] 스택, 큐 구현 - 파이썬 deque (0) | 2021.06.24 |