Notice
Recent Posts
Recent Comments
Link
jyamethyst21 님의 블로그
백준 10814번- '나이순 정렬' (PYTHON 풀이) 본문
문제:

사용자로부터 입력값을 받고 해당 수만큼 나이와 이름을 입력받는다.
그리고 이를 나이순으로 정렬하고, 나이가 같으면 먼저 입력한 순으로 그냥 출력하면 된다.
풀이:
N = int(input())
k = []
for i in range(N):
a,b = input().split()
k.append([int(a),b])
for j in sorted(k, key=lambda x: x[0]):
print(j[0], j[1])
코드는 다음과 같다. 이 문제를 풀기 위해 기억하면 좋을 게 있는데 append를 쓸 때 리스트 형태로 묶어서 저장한다는 점과 sorted 함수 사용법이다. 지난번 정렬 문제를 풀 때 sorted 함수 내 key를 이용해서 len이라는 길이순으로 정렬해서 문제를 풀었던 적이 있다.
이번에도 key를 이용할건데 함수형태의 lambda를 활용해서 x[0] (나이순)로 정렬하라고 지정해준 뒤 반복문을 돌면 원하는 대로 출력이 가능하다.
예를 들어 입력값으로 [30, kim], [29, park] 이렇게 두번 입력받았다고 쳐보자.
그럼 sorted for문을 돌 때 각 x는 리스트 원소를 의미한다. 첫번째 x는 [30, kim], 두번째 x는 [29, park]가 될 것이고 여기서 x[0]는 30, 29인 나이가 된다. 그래서 이를 기준으로 정렬하라는 뜻이 된다.
그 후 print를 통해 나이인 j[0], 이름인 j[1]을 그대로 출력한다.
'CODING 💻' 카테고리의 다른 글
| 백준 11651번- '좌표 정렬하기 2' (PYTHON 풀이) (0) | 2025.10.09 |
|---|---|
| 백준 11650번- '좌표 정렬하기' (PYTHON 풀이) (0) | 2025.10.08 |
| 백준 19532번- '수학은 비대면강의입니다' (PYTHON 풀이) (0) | 2025.10.06 |
| 백준 2231번- '분해합' (PYTHON 풀이) (0) | 2025.10.05 |
| 백준 24313번- '알고리즘 수업 - 점근적 표기 1' (PYTHON 풀이) (0) | 2025.10.04 |
