[6/26] 10814 (나이순 정렬)

이경준·2021년 6월 26일
0

코테

목록 보기
48/140
post-custom-banner

실버4 문제

내 코드

n = int(input())
arr = []
for i in range(n):
    human = list(input().split())
    human.append(i)
    arr.append(human)
    
arr.sort(key = lambda x:(int(x[0]), x[2]))

for age in arr:
    print(age[0], age[1])

로직

  1. 값을 입력받고, 해당 리스트에 index 값을 추가한다.
  2. 나이, index 값 순으로 정렬한다.
  3. 하나씩 출력한다.

효율적인 코드

import sys
n = int(input())
people = []
for _ in range(n):
    age, name = input().split()
    people.append(list(input().split()))
    
people.sort(key = lambda x: int(x[0]))
for i, j in people:
    print(i, j)

피드백

  • sys를 사용하니 시간이 1/10로 줄었다...
  • 나이가 같으면 들어온 순서대로 정렬하고 싶어서 index 값을 따로 정렬에 이용했지만, lambda를 써서 나이 기준으로 정렬하면, 나이가 같을 때 알아서 들어온 순서대로 정렬이 된다.
profile
The Show Must Go On
post-custom-banner

0개의 댓글