https://www.acmicpc.net/problem/17254
n, m = map(int, input().split())
timeline = [[] for _ in range(1000001)]
for _ in range(m):
a, b, c = map(str, input().split())
timeline[int(b)].append((int(a), c))
for time_input in timeline:
if len(time_input) > 0:
time_input.sort()
for key_input in time_input:
print(key_input[1], end='')
n, m = map(int, input().split())
arr = []
for _ in range(m):
a, b, c = input().split()
arr.append([int(a), int(b), c])
print(arr)
arr.sort(key=lambda x:[x[1], x[0]])
print(arr)
for a in arr:
print(a[2], end='')
처음에 '제출한 코드' 로 제출 했다가 이건 효율적이지 못한 것 같아서 구글링을 통해 다른 방법을 알아냈다.
key=lambda로 정렬을 해 주는 것이었다.
key=lambda의 용법을 다시 정리하면
◻ 비교할 아이템이 요소가 복수 개일 경우, 튜플로 그 순서를 내보내주면 된다. (개선한 코드를 보니 list로 순서를 내보내 줘도 되는듯)
◻ -를 붙이면, 현재와 반대차순으로 정렬된다.
e = sorted(a, key = lambda x : (x[0], -x[1]))
# e = [(0, 1), (1, 2), (3, 0), (5, 2), (5, 1)]