728x90
처음 이 문제를 보면 sorted를 사용하고 key 값으로 x[0]과 index(x)를 사용하면 되겠다고 생각했다.
그러나 이 경우에는 시간 초과가 나게 된다.
파이썬에서는 정렬 시 같은 값이 나올 경우 배열의 인덱스, 즉 먼저 입력된 원소가 먼저 정렬되게 되므로 x[0]만 정렬하면 풀 수 있는 문제이다.
또한 key = lambda x : x[0]을 사용하면 오답 처리가 되고, key = lambda x : int(x[0])으로 해야 정답이 된다.
(아스키코드값에 의해서 int형이 아니어도 된다고 생각했지만, 오답으로 처리되었음....)
다른 블로그나 사람들의 풀이를 보면 '튜플'을 사용해야 정렬이 된다 하지만....
그건 누군가 그냥 튜플을 사용해서 풀이한 문제를 보고 잘못 알고 사용한 것 같다.
이 경우에는 튜플과 리스트 상관없이 같은 방식으로 정렬이 된다.
1 2 3 4 5 6 7 8 9 10 11 12 | import sys n = int(sys.stdin.readline()) arr = [] for _ in range(n): arr.append(sys.stdin.readline().split()) arr.sort(key = lambda x : int(x[0])) for age, name in arr: print(age, name) | cs |
간단하게 입력받고, sort 함수를 사용해서 정렬 후 출력하면 된다.
앞에서 말했지만, 튜플을 사용할 필요 없이... 리스트도 같은 결과를 얻을 수 있으며 key 값에서 int형으로 정렬하도록 하면 된다.
728x90
'알고리즘' 카테고리의 다른 글
프로그래머스(level3) / 표 편집 / 파이썬, python / 2021 카카오 채용연계형 인턴십 (0) | 2021.08.30 |
---|---|
백준 2342 Dance Dance Revolution ( 파이썬 / pypy ) (0) | 2021.07.20 |
백준 2018 통계학 ( 파이썬 / pypy ) (0) | 2021.01.28 |
백준 10989 수 정렬하기3 ( 파이썬 / 파이썬3 / pypy3 ) (0) | 2021.01.28 |
삽입 정렬(insertion sort) - c 언어 코드(code) (0) | 2019.08.16 |