본문 바로가기
알고리즘

[백준] 10814번: 나이순 정렬 - python

by 육빔 2024. 3. 25.
728x90
반응형

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

 

10814번: 나이순 정렬

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

www.acmicpc.net

 

빈도정렬 문제와 비슷한 문제라고 생각하여 코드 똑같이 작성했는데

 

바로 시간초과

 

n = int(input())

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

for i in range(n-1):
    for j in range(n-i-1):
        if arr[j][0] > arr[j+1][0]:
            tmp = arr[j]
            arr[j] = arr[j+1]
            arr[j+1] = tmp
for x,y in arr:
    print(x, end=" ")
    print(y)

 

흠.. 퀵정렬을 사용해야하나 생각하며 다시 작성

 

내장함수 sorted를 쓰니 age, name 순으로 정렬이되어 가입한 순서대로 출력되지 않음

 

n = int(input())

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

arr.sort(key=lambda x : x[0])
for x,y in arr:
    print(x, end=" ")
    print(y)

 

 

lambda함수를 사용하여 나이순으로 정렬하니 정답.

 

728x90
반응형