본문 바로가기

프로그래밍 언어/Python

[Hackerrank] 10. Nested Lists

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.