https://www.acmicpc.net/problem/10814
포인트
sorted에서 lambda 사용법 (특정 인덱스 기준으로 정렬하기)
sort_list = sorted(list, key=lambda a: a[0])
https://gorokke.tistory.com/38
딕셔너리는 key 값이 중복되면 저장되지 않는다.
처음엔 딕셔너리로 풀어서
{이름: 나이, ...} 이렇게 정렬 했다.
# 입력
n = int(input())
old_dic = {}
for i in range(n):
old, name = map(str, input().split())
old = int(old)
old_dic.setdefault(name, old)
# 나이적은 순부터 앞으로 오름차순 정렬하기
# value값 기준으로 오름차순 정렬을 한다.
sorted_dic = sorted(old_dic.items(), key=lambda x:x[1])
sorted_dic = dict(sorted_dic)
# print(sorted_dic)
for key, value in sorted_dic.items():
print(value, key)
그런데 계속 틀렸습니다. 가 나와서
서핑을 해보니
이름이 같을 때는 뒤에 오는 동명이인이 아예 딕셔너리에 저장되지 않는다는 점이었다.
따라서 결국엔 value나 key값이 중복되도 사라지지 않으려면
list를 써야 했다.
# 입력
n = int(input())
list = []
for i in range(n):
old, name = map(str, input().split())
old = int(old)
list.append([old, name])
# 나이적은 순부터 앞으로 오름차순 정렬하기
sort_list = sorted(list, key=lambda a: a[0])
for person in sort_list:
print(person[0], person[1])
'Computer Science > Algorithm' 카테고리의 다른 글
[백준] 1018번 체스판 다시 칠하기, python (0) | 2023.01.07 |
---|---|
[백준] 1920번 수 찾기, python (0) | 2023.01.06 |
[백준] 2920번 음계, python (0) | 2023.01.06 |
[1단계] 백준 1152번 단어의 개수, python (0) | 2023.01.05 |
[백준] 브론즈4에서 한 달 티어 목표 (0) | 2023.01.05 |