리셋 되지 말자

[백준 10814] 나이순 정렬 - 정렬 본문

알고리즘

[백준 10814] 나이순 정렬 - 정렬

kyeongjun-dev 2021. 12. 30. 16:51

코드

def solution(arr):
    arr.sort(key=lambda x: int(x[0]))
    for per in arr:
        print(per[0], per[1])

n = int(input())
arr = []
for i in range(n):
    age, name = input().split()
    arr.append([age, name])

solution(arr)

 

설명

  • 얼핏 보면 그냥 나이순으로 정렬하면 된다. 왜냐하면 파이썬의 sort는 stable(정렬 전과 후의 순서가 보장됨)정렬이니깐
  • 문제는 나이인 age를 int로 바꾼 뒤에 정렬해줘야 한다는 점이다.
  • 왜냐면 '12' 와 '2'를 비교하면, 문자열은 앞자리부터 비교를 하기 때문에 '2'가 더 큰 것으로 비교가 된다.
  • age만 int로 형변환 해준 뒤 sort로 정렬해주면 된다.
>>> age1 = '12'
>>> age2 = '2'
>>> age1 > age2
False
Comments