티스토리 뷰

📌문제

N명의 학생 정보가 있다. 학생 정보는 학생의 이름과 학생의 성적으로 구분된다. 각 학생의 이름과 성적 정보가 주어졌을 때 성적이 낮은 순서대로 학생의 이름을 출력하는 프로그램을 작성하시오.

 

📌풀이

N이 100,000개까지 입력될 수 있으므로 최악의 경우 O(NlogN)을 보장하는 알고리즘이나 O(N)을 보장하는 계수 정렬을 이용

파이썬 기본 정렬 라이브러리도 가능

학생 정보를 (점수, 이름)으로 묶은 뒤에 점수를 기준으로 정렬 수행

 

📌코드

n = int(input())

# N명의 학생정보를 입력받아 리스트에 저장
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=" ")

 

 

📌참고

https://g.co/kgs/eyd5SSd

 

이것이 취업을 위한 코딩 테스트다 with 파이썬

IT 취준생이라면 누구나 입사하고 싶은 카카오・삼성전자・네이버・라인!취업의 성공 열쇠는 알고리즘 인터뷰에 있다! IT 취준생이라면 누구나 가고 싶어 하는 카카오, 라인, 삼성전자의 2016년

www.google.com

 

 

'코딩테스트' 카테고리의 다른 글

이진 탐색  (0) 2024.10.24
두 배열의 원소 교체  (2) 2024.10.23
위에서 아래로  (1) 2024.10.21
파이썬의 정렬 라이브러리  (1) 2024.10.19
heapq 라이브러리 문법  (2) 2024.10.18
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함