BAEKJOON (Python)/단계별

BAEKJOON_10814 "나이순 정렬" PYTHON

RiLLa_0511 2023. 3. 20. 14:36
728x90

[백준] 10814번 Python 파이썬

 

 

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

 

10814번: 나이순 정렬

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

www.acmicpc.net

이 문제는 sort 함수를 이용하여 문제를 해결하였다.

 

먼저 나이와 이름을 입력받아야 하는데 나이순으로 출력하고, 나이가 같다면 입력받은 순서대로 출력해야 하기 때문에 입력받은 순서도 리스트에 담아준다. 

 

만들어진 리스트를 나이순, 입력받은 순서대로 sort 함수를 이용하여 정렬해준다.

 

출력은 for문을 이용하여 나이, 이름을 출력해 준다.

import sys
n = int(sys.stdin.readline())
people = []
for i in range(n):
    age, name = sys.stdin.readline().split()
    people.append((int(age), name, i)) # 입력받은 순서인 i를 리스트에 담아준다.
    
people.sort(key = lambda x : (x[0], x[2])) # x[0]에 담겨 있는 나이를 우선으로 배열하고,
# x[2]에 담겨 있는 인덱스를 그 다음으로 고려하여 배열해준다.

for i in people:
    print(i[0],i[1])

혼자 공부하며 올리는 블로그입니다. 틀린 내용은 댓글 남겨주시면 감사하겠습니다.