나이 순으로 정렬하고, 나이가 같다면 리스트의 순서를 바꾸지 않는 문제.
역시 클래스의 연산자 오버로딩을 이용해서 풀었다.
n = int(input())
class Info :
def __init__(self, age, name):
self.age = age
self.name = name
def __lt__(self, c):
return self.age < c.age
lst = []
for i in range(n):
age, name = input().split()
age = int(age)
lst.append(Info(age, name))
lst.sort()
for i in lst:
print(i.age, i.name)
__lt__ (<) 연산자를 오버로딩해서 나이만 비교하도록 변형했다. 그리고 파이썬의 내장 sort()함수를 이용하면 정렬이 된다.

'Algorithms' 카테고리의 다른 글
백준 10815. 숫자 카드 (0) | 2022.06.07 |
---|---|
백준 18870. 좌표 압축 (0) | 2022.06.07 |
백준 1181. 단어 정렬 (0) | 2022.06.07 |
백준 11651. 좌표 정렬하기 2 (0) | 2022.06.07 |
백준 11650. 좌표 정렬하기 (0) | 2022.06.07 |
댓글