문제
N명의 학생의 성적 정보가 주어진다. 형식은 이름 성적 으로 주어지는데 이때 이들의 성적이 낮은 순으로 학생 이름을 출력하는 문제다.
입력
- 첫 번째 줄에 학생의 수 N이 입력된다. (1 <= N <= 100,000)
- 두 번째 줄 부터 N+1 번째 줄 까지 학생의 이름 그리고 성적이 공백으로 주어진다. 학생이름 길이는 100이하, 성적은 100이하 자연수로 주어진다.
출력
- 모든 학생의 이름을 성적이 낮은 순으로 출력하면된다. 동일한 성적은 자유롭게 출력하면된다.
접근법 & 풀이 (의식의 흐름)
1. 일단 이름과 성적을 어떤 방식으로 저장해야할지 고민..
2. 이름, 성적을 둘다 저장하는 이차원 리스트로 저장한다음에
3. 성적을 기준으로 리스트를 정렬하면 될거같음
소스코드
n = int(input())
array = []
for i in range(n):
array.append(list(input().split()))
array[i][1] = int(array[i][1])
array = sorted(array, key = lambda x: x[1]) # 점수를 기준으로 정렬
for i in range(n):
print(array[i][0], end = ' ') # 이름만 출력
오답노트 & 알아낸 것
- 이름만 출력할때 반복문에 배열을 넣어서 출력하면 훨씬 간결해진다..
'파이썬 > 이것이 코딩 테스트다 with 파이썬' 카테고리의 다른 글
이코테 chapter 07 이진 탐색 - 부품 찾기 (0) | 2022.02.05 |
---|---|
이코테 Chapter 05 정렬 - 두 배열의 원소 교체 (0) | 2022.02.02 |
이코테 Chapter 05 정렬 - 위에서 아래로 (0) | 2022.02.02 |
이코테 Chapter 04 구현 - 왕실의 나이트 (1) | 2022.01.26 |
이코테 Chapter 04 구현 - 시각 (0) | 2022.01.26 |