Python을 사용하여 10814 연령 정렬 문제를 해결해 봅시다.
* 문제 링크
https://www.acmicpc.net/problem/10814
#10814: 나이순 정렬
온라인 저지에 가입한 사람들의 나이와 이름은 가입한 순서대로 나열됩니다. 이때 프로그램은 나이가 많은 순서로 멤버를 정렬하고, 나이가 같을 경우 먼저 가입한 사람이 먼저 옵니다.
www.acmicpc.net
*암호
n=int(input())
array=()
for i in range(n):
age,name=map(str,input().split())
age=int(age)
array.append((age,name))
array.sort(key=lambda x : x(0))
for i in array:
print(i(0),i(1))
*코드 주석
나이와 이름을 별도의 변수에 넣고 각 쌍의 목록을 만듭니다.
그런 다음 목록은 연령 값만을 기준으로 정렬됩니다.
그런 다음 정렬된 목록이 순서대로 인쇄됩니다.
*Python 정렬 함수 정렬
Python 정렬 함수 sort와 sorted 사이의 유사점과 차이점을 살펴보겠습니다.
| 정렬 기준() | 정렬됨 () | |
| 원본 변환 여부 | 원래 변형 | 원래 변환 x는 변환된 목록을 반환합니다. |
| 문자열 정렬 기준 | 알파벳 순서 | |
| 숫자 정렬 기준 | 오름차순 | |
| 적용 예 | >>>목록=(2,3,1,4) >>>목록.정렬() >>>인쇄(목록) (1,2,3,4) >>>list=(‘사과’,’감자’,’바나나’,’수박’) |
>>>목록=(2,3,1,4) >>>print(정렬(목록) (1,2,3,4) >>>list=(‘사과’,’감자’,’바나나’,’수박’) |
sort 및 sorted의 매개변수를 살펴보겠습니다.
(1) 그 반대
Python 정렬 함수는 기본적으로 오름차순으로 정렬 및 정렬됩니다. reverse는 내림차순으로 정렬하는 데 사용됩니다.
reverse=True이면 순서가 내림차순이고 reverse=False이면 오름차순입니다.
매개변수이므로 sort(), sorted()의 괄호 안에 넣어주세요.
예) list.sort(reverse=True) / sorted(list,reverse=True)
(키 2개
Python 정렬 함수는 기본적으로 각 요소 자체를 기준으로 정렬하고 정렬합니다. 키는 각 요소를 “per se” 이외의 기준으로 정렬할 때 사용됩니다. 이 경우 람다를 사용할 수 있습니다.
예) 각 요소의 길이에 따라 다른 정렬 가능성
– list.sort(키=len)
– 정렬됨(목록, 키=len)
– list.sort(키=lambda x : len(x)) #lambdba 사용
– 정렬됨(목록, 키 =람다 x : len(x)) #람다와 함께
(3) 본 백준 솔루션에 사용된 코드 설명
list.sort(key=lambda x : x(0)) # 각 항목(나이, 이름)에서 나이별로만 정렬합니다.
