본문 바로가기

알고리즘/백준

[Python] 백준 파이썬 10814 나이순 정렬

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

 

10814번: 나이순 정렬

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

www.acmicpc.net

# 백준 10814 나이순 정렬
n = int(input())

i = 1 # 1 가입 순서

user_list = []

for _ in range(n):
  age, name = input().split()
  user_list.append([int(age), name, i]) # 2
  i += 1

user_list.sort(key = lambda x : (x[0], x[2])) # 3
for i in user_list:
  print(i[0], i[1])

문제 조건

1. 나이순 정렬

2. 나이가 같으면 가입순 정렬

 

코드 설명

# 1 : 가입 순서로 입력이 들어오기 때문에 가입 순서를 표시할 i를 정의 해줍니다. i는 1부터 시작합니다.

# 2 : 반복문에서 사용자 리스트에 정보를 추가할 때 [나이, 이름, 가입 순서] 로 입력해줍니다. 그리고 i에 1을 더해줍니다.

# 3 : x[0] : 나이, x[2] : 가입 순서 이므로 sort(key = lambda) 를 이용해 정렬 해줍니다.

# 4 : 출력은 x[0] : 나이, x[1] : 이름 으로 해줍니다.