[백준 17254] 키보드 이벤트_Python
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='')
🧂아이디어
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)]
Author And Source
이 문제에 관하여([백준 17254] 키보드 이벤트_Python), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@eastgloss0330/백준-17254-키보드-이벤트Python저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)