728x90
https://www.acmicpc.net/problem/10814
import sys
n = int(input())
arr = []
for i in range(n):
age, name = sys.stdin.readline().split() #1
arr.append((int(age), name)) #2
arr.sort(key=lambda x : x[0]) #3
for age, name in arr: #4
print(age, name)
#1 : 각각 age와 name으로 받아준다.
#2 : 정렬을 위해 age는 int형으로 바꿔서 튜플로 저장한다.
#3 : age를 기준으로 정렬한다.
#4 : 반복 변수를 2개로 나눠서 각각 띄어쓰기로 출력한다.
이 문제를 풀면서 모르던 사실을 하나 더 알게 되었다. sort(key = lambda x : x[0])로 정렬을 하면 x[0]만 정렬을 하고 나머지는 입력받은 그대로를 유지한다는 것이다.
정렬이라서 x[0] 이후의 부분도 자동으로 사전 순으로 정렬될 줄 알았는데 아니었다. 그것이 됐다면 예제 출력 1에서 21 Junkyu 21 Dohyun 순서가 아니라 21 Dohyun 21 Junkyu 순서가 됐을것이다. (D는 J보다 사전 순으로 앞에 오니까)
https://hgk5722.tistory.com/123
다른 풀이)
import sys
n = int(sys.stdin.readline())
res = [ list(sys.stdin.readline().split()) for _ in range(n) ]
res.sort(key=lambda x : int(x[0]))
for i, j in res:
print(i, j)
728x90
'[Coding Test] > [백준]' 카테고리의 다른 글
[백준] 10866 파이썬(python) : 덱 (0) | 2022.07.04 |
---|---|
[백준] 10816 파이썬(python) : 숫자 카드 2 (0) | 2022.07.04 |
[백준] 2751 파이썬(python) : 수 정렬하기 2 (0) | 2022.07.04 |
[백준] 2609 파이썬(python) : 최대공약수와 최소공배수 - (유클리드 호제법) (0) | 2022.07.04 |
[백준] 2164 파이썬(python) : 카드2 (0) | 2022.07.04 |