본문 바로가기

알고리즘 (Python)/이것이 코딩 테스트다 with 파이썬

[정렬 알고리즘] 성적이 낮은 순서로 학생 출력하기 - 파이썬(python)

728x90
반응형

성적이 낮은 순서로 학생 출력하기

난이도 : 下 풀이 시간 : 20분

시간 제한 : 1초 메모리 제한 : 128 MB

 


 

해답

 

n = int(input())

array = []
for i in range(n):
    input_list = input().split()
    array.append((input_list[0], int(input_list[1])))

array = sorted(array, key=lambda x: x[1])

for x in array:
    print(x[0], end=' ')

예시

 

n = int(input())

array = []
for i in range(n):
    input_data = input().split()
    array.append((input_data[0], int(input_data[1])))

array = sorted(array, key=lambda student: student[1])

for student in array:
    print(student[0], end=' ')

해설

 

n과 array에 입력을 받습니다. array에 입력을 받을 때는 우선 input_list에 저장한 뒤 이름과 성적을 나누어 저장합니다.
그리고 sorted() 함수를 사용할 때 key 옵션을 lambda 함수와 함께 사용합니다.
lambda 함수 뒤에 나오는 x는 튜플이고, x[1]은 튜플에서 성적값을 의미합니다.
즉, array에 담긴 정보들을 x라는 튜플에 저장하고 x[1] 즉 성적값을 기준으로 오름차순으로 정렬하겠다는 의미입니다.
print() 함수로 출력할 때는 x 튜플을 기준으로 출력해줍니다.
728x90
반응형