Today
Total
Recent Posts
Link
반응형
«   2025/07   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
Archives
관리 메뉴

아임'준

[BOJ / 파이썬] 10814: 나이순 정렬 본문

문제풀이/BOJ

[BOJ / 파이썬] 10814: 나이순 정렬

아임'준 2021. 10. 7. 17:33
반응형

백준 / BOJ / Python / 파이썬

문제 링크 : https://www.acmicpc.net/problem/10814

 

10814번: 나이순 정렬

온라인 저지에 가입한 사람들의 나이와 이름이 가입한 순서대로 주어진다. 이때, 회원들을 나이가 증가하는 순으로, 나이가 같으면 먼저 가입한 사람이 앞에 오는 순서로 정렬하는 프로그램을

www.acmicpc.net

단계 : 정렬

알고리즘 분류 : 정렬

 

풀이:

입력받을 사람의 수를 t에 저장한다.

 

사람들의 정보를 저장할 리스트를 하나 만든 후 입력으로 들어오는 나이, 이름을 리스트로 묶어서 함께 저장한다.

 

정보를 저장한 리스트를 첫번째 요소인 나이를 기준으로 정렬하기 위해 현재 문자열로 저장돼있는 나이를 int() 함수를 통해 정수형으로 바꿔준 후 나이를 기준으로 정렬해준다. 나이가 같을 경우 가입한 순서대로(입력한 순서대로) 출력하라고 돼 있는데 파이썬은 sort를 할 때 기존 순서를 최대한 유지하려는 성질이(안정 정렬) 있다. 그렇기 때문에 나이순으로 정렬하면서 같은 나이가 있다면 리스트 순서상 앞에 있는 것을 자동적으로 앞에 두어 따로 코드로 고려할 필요가 없다.

 

코드

import sys

t = int(sys.stdin.readline())
ls = []
for i in range(t):
    ls.append(list(sys.stdin.readline().split()))

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

for i in range(t):
    print(ls[i][0], ls[i][1])

Comments