교재 : 이것이 코딩 테스트다 with 파이썬
CHAPTER 6 정렬
실전문제 6-2 위에서 아래로 180p
N명의 학생의 성적 정보가 주어진다. 형식은 이름 성적 으로 주어지는데 이때 이들의 성적이 낮은 순으로 학생 이름을 출력하는 문제다.
입력 예시
2
홍길동 96
이순신 78
출력 예시
이순신 홍길동
보자마자 튜플로 풀어야겠구나 했는데.. 진짜 기본문법 왤케 안익혀지는지 튜플로 정렬 당췌 어케 하는 지 모르겠어서 고민을 좀 했다.. 근데 진짜 생각 안나서 그냥 하던데로(?) 배열 두개 만들어서 인덱스로 하려고 했는데 뭔가 이렇게 풀면 당연히 풀리겠다만... 안 멋질 것 같아서 ㅋㅋㅋㅋ 그냥 풀이 보고 정리 했다
input_data = input().split()
이런게 되는 지 몰랐다.. list 둘러야 하는 줄?
n = int(input())
board =[]
for i in range(n):
name, score = input().split()
board.append((name, score))
arr = sorted(board, key=lambda student: student[1])
for i in arr:
print(i[0],end=' ')
죽음의 람다식... 아직도.. 잘 모르겠는데 암튼 key를 [1]로 뒀다는 거지..? 그래그래.. ㅠㅠ 다음에 문제 풀때 람다식 안보고 좀 써보고 싶다... ㅠㅠㅠ
암튼 너무 쉽지만... 파이썬 문법린이는 아직.. 잘 모르겠다구요....ㅠ
# N 입력 받기
n = int(input())
# N명의 학생 정보를 입력 받아 리스트에 저장
array = []
for i in range(n):
input_data = input().split()
# 이름은 문자열 그대로, 점수는 정수형으로 변환하여 저장
array.append((input_data[0], int(input_data[1])))
# 키(Key)를 이용하여, 점수를 기준으로 정렬
array = sorted(array, key=lambda student: student[1])
# 정렬이 수행된 결과를 출력
for student in array:
print(student[0], end=' ')
- 풀이시간 : 5분
이것이 코딩 테스트다 with 파이썬 - 나동빈 저