우당탕탕 개발일지

[정렬] 이것이 코딩테스트다 level 1 성적이 낮은 순서로 학생 출력하기 (Python 파이썬) 본문

알고리즘

[정렬] 이것이 코딩테스트다 level 1 성적이 낮은 순서로 학생 출력하기 (Python 파이썬)

민아당긴아 2024. 5. 26. 18:28

💡문제 링크

 

💡문제 분석 요약

첫 번째 줄에 학생의 수 n 입력

두 번째 줄부터 n개의 줄에 걸쳐 학생 이름과 학생 점수가 입력된다(예. 홍길동 95)

모든 학생의 이름을 성적이 낮은 순서대로 출력

 

💡알고리즘 설계

1. n회에 걸쳐 array라는 리스트에 학생의 이름과 점수를 입력한다. [['이순신', 77], ['홍길동', 96]]

2. key = lambda x: ~~ 함수를 사용하여 각 원소의 첫 번째 인덱스(즉 학생 이름)를 기준으로 정렬한다.

3. 정렬된 array의 각 원소의 첫 번째 인덱스(즉 학생 이름)를 순서대로 모두 출력한다.

 

💡코드

n = int(input())
array = []
for _ in range(n):
  input_data = input().split()
  array.append([input_data[0], int(input_data[1])])
array.sort(key=lambda x: x[1])
for student in array:
  print(student[0], end = ' ')

 

💡 오답 풀이

n = int(input())
array = []
for _ in range(n):
  array.append(input().split( ))
array.sort(key=lambda x: x[0])
for num in range(n):
  print(array[num][0], end = ' ')

처음에는 학생 이름을 기준으로 잘못 정렬했다.

그리고 학생 점수는 int형태이니까 이것도 처리해줘야 한다.

💡 다른 풀이

...

 

💡 느낀점 or 기억할정보

easy peasy

계수 정렬을 이용하면 된다