반응형
[문제 출처]
https://www.acmicpc.net/problem/10814
[문제 풀이]
나이가 증가하는 순으로 정렬하고, 이름이 같을 경우 입력받은 순서를 그대로 유지하도록 해야 하는 문제이다.
파이썬 sort()를 이용했는데, 나이순으로 정렬했을 때 기존 순서가 바뀌는지 아닌지 몰라서 일단 돌려봤는데 정답이 나왔다
파이썬 sort()의 경우 같은 값에 대해서 기존 순서를 유지하는 것으로 보인다. 따라서 나이순으로 정렬하는 문제와 다르지 않게 풀 수 있다.
한 가지 신경 써야 하는 점이라면, 정수와 문자열이 같이 입력으로 들어오기에 타입을 신경 써주어야 한다.
아래 작성한 코드처럼, 문자열로 받고 정렬 시에만 형 변환해주어도 되고, 처음부터 정수형으로 바꿔서 저장해주어도 된다.
#10814
import sys
input = sys.stdin.readline
n = int(input())
info = []
for i in range(n):
info.append(list(input().split()))
info.sort(key = lambda x:int(x[0]))
for e in info:
print(*e)
처음에는 readline을 사용하지 않고 제출했는데, 오래 걸리길래 시간 초과가 나올까 봐
채점 중에 readline을 추가해서 채점을 해보았다.
다행히 2가지 코드 모두 시간 초과가 나오지 않았으나, 그냥 input()을 사용한 코드의 경우 채점이 매우 오래 걸렸다.
직접적으로 비교해보니 시간 차이가 눈에 띄게 커서 흥미로웠다.
반응형
'알고리즘 > python' 카테고리의 다른 글
[python/파이썬] 백준 4344 평균은 넘겠지 (0) | 2022.11.21 |
---|---|
[python/파이썬] 백준 18870 좌표 압축 (0) | 2022.11.18 |
[python/파이썬] 좌표 정렬하기2 (0) | 2022.11.16 |
[python/파이썬] 백준 11650 좌표 정렬하기 (0) | 2022.11.15 |
[python/파이썬] 백준 1427 소트인사이드 (0) | 2022.11.14 |