728x90
[이코테] 문제2 - 성적인 낮은 순서로 학생 출력하기(180p)
(한줄평) 파이썬 기본 정렬 라이브러리를 이용하면 쉽게 풀 수 있었던 기본 문제!
(풀이1) 기본 정렬 라이브러리 사용
풀이 시간: 3분 이내
1) 문제 해결 아이디어
sort()의 key에 정렬 기준을 명시하면 정렬 기준대로 정렬을 할 수 있다.
2) 소스코드
n = int(input()) # 학생 수
arr = [input().split() for _ in range(n)] # n명의 학생정보
# 성적을 기준으로 오름차순 정렬
arr.sort(key=lambda x: x[1])
for student in arr:
print(student[0], end= " ") # 이름 출력
(풀이2) 계수 정렬
풀이 시간: 15분 이내
1) 문제 해결 아이디어
성적은 100이하 자연수이므로 101의 크기로 2차원 리스트(arr)을 생성한다.
입력받을 때 해당 점수에 해당하는 인덱스에 이름을 삽입한다.
이름을 0번 인덱스부터 차례대로 출력하면 오름차순 출력된다.
2) 소스코드
n = int(input()) # 학생 수
arr = [[] for _ in range(100001)]
for i in range(n):
name, score = input().split()
arr[int(score)].append(name) # 해당 점수에 이름 넣기
for student in arr:
for name in student:
print(name, end=" ")
728x90
'[Python]알고리즘 > 이코테 2021' 카테고리의 다른 글
[이진 탐색 알고리즘] 예제1 - 이진 탐색 (0) | 2022.04.18 |
---|---|
[정렬 알고리즘] 문제3 - 두 배열의 원소 교체(182p) (0) | 2022.04.18 |
[정렬 알고리즘] 문제1 - 위에서 아래로(178p) (0) | 2022.04.18 |
[정렬 알고리즘] 예제4 - 계수 정렬(Counting Sort)(174p) (0) | 2022.04.17 |
[정렬 알고리즘] ▲ 예제3 - 퀵정렬(Quick Sort)(168p) (0) | 2022.04.17 |