본문 바로가기
Algorithm/백준 문제풀이

[python] 10814번 - 나이순 정렬

by B_Tori 2021. 9. 3.

문제

파이썬 풀이

가입한 순서를 기록하기 위해 인덱스와 같이 저장하고, sort함수의 key인자를 첫 번째 정렬 기준을 나이로, 다음 정렬 기준을 인덱스로 지정해주면 해결될 것 같다.

import sys
input = sys.stdin.readline

n= int(input().rstrip())
members=[]
for index in range(n):
  age,name = input().rstrip().split()
  members.append((index, age, name))

members.sort(key=lambda member : (int(member[1]),member[0]))

for member in members :
  print(member[1],member[2])

여기서 포인트는 나이를 int로 바꿔주는 것이였다.

저장된 나이 값은 사용자 입력으로 입력되어 string형태로 저장되어 있었다.

그렇게 되면 정렬은 가능하나 우리가 생각한 숫자 오름차순 정렬이랑은 조금 다른 결과가 나온다.

예를 들어 문자열 3, 13을 오름차순으로 정렬하게 되면 문자열 내 한 글자 한 글자를 유니코드를 기준으로 정렬하기 때문에 13, 3으로 정렬되게 된다.

따라서 age를 int로 바꿔주어 정렬해준다.

댓글