정렬
데이터를 특정 기준에 따라서 순서대로 나열
- 선택 정렬 : 가장 작은 것을 선택
- 삽입 정렬 : 특정한 데이터를 적절한 위치에 삽입
- 퀵 정렬 : 기준 데이터를 설정하고 그 기준보다 큰 데이터와 작은 데이터의 위치를 바꿈. 피벗(기준) 사용(ex. 리스트에서 첫 번째 데이터를 피벗으로 정한다)
- 계수 정렬(count sort) : 데이터의 크기 범위가 제한되어 정수 형태로 표현할 수 있을 때만 사용가능함 빠른 정렬 알고리즘 (모든 범위를 담을 수 있는 크기의 리스트를 선언)
- 별도의 리스트를 선언하고 그 안에 정렬에 대한 정보를 담음
- 가장 큰 데이터와 가장 작은 데이터의 차이가 1,000,000을 넘지 않을 때 효과적으로 사용
N명의 학생 정보가 있다. 학생 정보는 학생의 이름과 학생의 성적으로 구분된다. 각 학생의 이름과 성적 정보가 주어졌을 때 성적이 낮은 순서대로 학생의 이름을 출력하는 프로그램을 작성하시오.
2
홍길동 95
이순신 77
이순신 홍길동
N = int(input())
array = []
for i in range(N):
a, b = input().split()
array.append((a, int(b)))
def setting(data):
return data[1]
result = sorted(array, key=setting)
for i in result:
print(i[0], end=' ')
학생 정보를 튜플로 저장한다. 튜플 중 학생의 점수 데이터를 return하는 setting 함수를 만들어 sorted 함수의 key에 적용하였다.
setting 함수를 따로 만들지 않고 lambda 식 사용
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=' ')