지나가던 개발자
[Python] 백준 10814번(나이순 정렬) 문제 풀이 본문
그저 단순한 정렬 문제인 것 같다.
members = []
for i in range(int(input())):
members.append(input().split())
age = []
for m in members:
age.append(int(m[0]))
age = sorted(age)
for i in range(len(age)):
j = 0
while True:
if members[j][0] == str(age[i]):
break
j += 1
print(age[i], members[j][1])
del members[j]
이렇게 짜니 시간 초과가 떴다. 하긴 N이 100000까지인데 100000짜리가 들어온다면 반복문을 엄청나게 돌려야 하니...
그래서 이번에는 다른 블로그를 참고해서 이렇게 코드를 짜봤다.
members = []
for i in range(int(input())):
members.append(input().split())
members.sort(key=lambda x:x[0])
for m in members:
print(m[0], m[1])
"리스트명.sort(key=lambda x:x[0])"는 2차원 배열을 첫번째 요소 값을 기준으로 정렬해준다. 근데 이렇게 짰더니 틀렸다고 떴다. 생각을 해보니, 위 코드에서는 members[i][0] 요소가 문자열이었다... 이런 실수를 하다니.
members = []
for i in range(int(input())):
member = input().split()
member[0] = int(member[0])
members.append(member)
members.sort(key=lambda x:x[0])
for m in members:
print(m[0], m[1])
이렇게 바꾸어 주니 맞았다. 생각보다 어려운 문제였다.
'PS > Python' 카테고리의 다른 글
[Python] 백준 2153번(소수 단어) 문제 풀이 (0) | 2022.02.22 |
---|---|
[Python] 백준 2744번(대소문자 바꾸기) 문제 풀이 (0) | 2022.02.19 |
[Python] 백준 5596번(시험 점수) 문제 풀이 (0) | 2022.02.18 |
[Python] 백준 3058번(짝수를 찾아라) 문제 풀이 (0) | 2022.02.18 |
[Python] 백준 2845번(파티가 끝나고 난 뒤) 문제 풀이 (0) | 2022.02.18 |
Comments