[BOJ] 10814 나이순 정렬
이 문제는 정렬 문제로, sort
함수를 사용해서 풀이할 수 있었다.
하지만 주의해야할 것이 있었다.
문자열 정렬에서는 숫자의 크기와 관계없이 글자의 아스키코드 값을 기준으로 정렬을 한다.
숫자 정렬과는 다음과 같이 차이를 보인다.
array = ["1", "134","124","30"]
num_array = [1,134, 124, 30]
array.sort() # ["1", "124", "134", "30"]
num_array.sort() # [1, 30, 124, 134]
이 차이를 생각하기 전에는 다음과 같이 코드를 작성했다.
import sys
input = sys.stdin.readline
n = int(input())
array = []
for i in range(n):
a, b = input().strip().split()
array.append(a,i,b)) # i는 가입 순서를 저장하기 위함
array.sort()
for i in range(n):
print(array[i][0] +" "+ array[i][2])
수정 후에는 다음과 같다.
- 값을 넣어줄 때
string
이 아닌int
형으로 형변환하여 배열에append
해줬다.
나의 풀이
import sys
input = sys.stdin.readline
n = int(input())
array = []
for i in range(n):
a, b = input().strip().split()
array.append((int(a),i,b)) # i는 가입 순서를 저장하기 위함
array.sort()
for i in range(n):
print(str(array[i][0]) +" "+ array[i][2])