알고리즘

(파이썬) 백준 알고리즘 - 10814번

joy_lee 2021. 8. 27. 16:29

나이순 정렬

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

 

10814번: 나이순 정렬

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

www.acmicpc.net

정렬 기준은

1. 나이에 따라 오름차순

2. 가입한 순서에 따라

이다. 입력은 가입한 순서로 주어진다고 했고, sort로 정렬되는 배열의 경우 안정적임이 보장되어 같은 정렬 기준일 경우 원래 순서가 유지된다.

위 조건들에 따라 코드를 작성하면 다음과 같다.

1
2
3
4
5
= int(input())
members = [list(input().split()) for _ in range(N)]
members.sort(key = lambda x : int(x[0]))
for mem in members:
    print(mem[0], mem[1])
cs

 

members list에 나이와 이름으로 구성된 list를 저장한다.

sort를 통해 나이의 크기에 따라 정렬하도록 한다. 입력받을 때 문자열로 그대로 입력받았기 때문에 int형으로 변환해주었다. 같은 나이인 경우 입력 순서에 따라 저장되므로 다른 조건이 필요하지 않다.

정렬된 멤버들을 나이, 이름으로 출력한다.

 

함수에 대해 정확히 아니까 구현하지 않아도 되는 부분은 신경쓰지 않게 되서 좋았다(입력순서 정렬). 사용하고자 하는 함수에 대해 잘 아는 것이 코드를 작성할 때 큰 도움이 되는 것 같다. python 정식 문서를 잘 찾아보며 작성해야 겠다.