10. Nested Lists
[ 난이도: Easy | 분야: Basic Data Types ]
1. 과제
반의 N명 학생들의 각각의 이름과 성적이 주어지고 이를 nested list에 저장한 후 성적이 두 번째로 낮은 학생의 이름을 출력하라.
주의: 성적이 두 번째로 낮은 학생이 여러 명이라면 알파벳 순으로 이름을 정렬한 후 각각 별도의 줄에 이름을 출력하라.
예시
records = [["chi",20.0],["beta",50.0],["alpha",50.0]]
성적을 순서대로 나열하면 [20.0, 50.0]이어서, 두 번째로 낮은 성적은 50.0이다. 이 경우, 해당하는 학생이 두 명이 있고 이를 리스트로 표현하면 다음과 같다: ["beta", "alpha"]
알파벳 순으로 정렬한 다음 출력하면 다음과 같이 출력된다:
alpha
beta
입력 형식
첫 번째 줄은 정수 N을 포함하고 있고 이는 학생들의 수를 의미한다.
2N의 하위줄이 있고 각 학생들은 2줄씩 사용한다.
- 첫 번째 줄은 학생의 이름이다.
- 두 번째 줄은 이 학생의 성적이다.
제약 사항
N은 2보다 크거나 같고 5보다 작거나 같다.
데이터에는 반드시 한 명이상이 두 번째로 낮은 점수를 가지고 있다.
출력 형식
두 번째로 낮은 성적을 받은 학생의 이름을 출력하라.
만약 여러 명의 학생이 이에 해당한다면, 그들의 이름을 알파벳 순으로 정렬하고 각 줄에 한 명씩 출력하라.
입력 예시0
5
Harry
37.21
Berry
37.21
Tina
37.2
Akriti
41
Harsh
39
출력 예시0
Berry
Harry
설명
반에는 5명의 학생이 있고 학생의 이름과 성적을 매칭하면 다음과 같다:
python students = [['Harry', 37.21], ['Berry', 37.21], ['Tina', 37.2], ['Akriti', 41], ['Harsh', 39]]
가장 낮은 성적은 37.2이고 이에 해당하는 학생은 Tina다. 두 번째로 낮은 성적은 37.21이고 이에 해당하는 학생은 Harry와 Berry다.
그렇기에 이 이름을 알파벳 순으로 정렬하고 각 줄에 하나의 이름을 출력한다.
문제
if __name__ == '__main__':
for _ in range(int(input())):
name = input()
score = float(input())
정답
if __name__ == '__main__':
myStudent = []
studentScore = []
N = 0
for _ in range(int(input())):
name = input()
score = float(input())
myList = [name, score]
myStudent.append(myList)
studentScore.append(score)
N += 1
lowest_Score = min(studentScore)
second_lowest = 100
second_Student = []
for i in range(N):
this_Score = myStudent[i][1]
if(lowest_Score > this_Score):
lowest_Score = this_Score
if(lowest_Score < this_Score < second_lowest):
second_lowest = this_Score
for i in range(N):
if(myStudent[i][1] == second_lowest):
second_Student.append(myStudent[i][0])
second_Student.sort()
for i in second_Student:
print(i)
©️Hackerrank. All Rights Reserved.
'프로그래밍 언어 > Python' 카테고리의 다른 글
[Hackerrank] 12. Lists (0) | 2024.03.05 |
---|---|
[Hackerrank] 11. Finding the percentage (2) | 2024.03.05 |
[Hackerrank] 09. Find the Runner-Up Score! (0) | 2024.03.02 |
[Hackerrank] 08. List Comprehensions (0) | 2024.03.02 |
[Hackerrank] 07. Print Function (0) | 2024.02.27 |