로직은 간단한 문제이지만 생각보다 꽤 길게 쓴 문제였다:
if __name__ == '__main__':
records = []
for _ in range(int(input())):
name = str(input())
score = float(input())
records.append([name, score])
values = []
for i in records:
values.append(i[1])
values_set = set(values)
values_list = list(values_set)
values_list.sort()
same_score_students = []
for j in records:
if j[1] == values_list[1]:
same_score_students.append(j[0])
same_score_students.sort()
for k in same_score_students:
print(k)
records 라는 리스트를 정의 해주고, 이에 [name, score] 리스트를 추가해준다. 그 다음 values 라는 리스트를 정의 해주고, 여기에는 학생들의 점수만 추가해준다. 이를 set로 변환시켜 다시 리스트로 변환시킨 후 오름차순으로 정렬해주고, same_score_students라는 리스트를 정의해, 두번째로 낮은 점수를 가진 학생들을 이 리스트에 추가시켜준다. 마지막으로 이 리스트를 알파벳 순서대로 정렬시켜주고, 각각 출력시켜준다.
'알고리즘 테스트 > Hackerrank 문제풀이 및 해설' 카테고리의 다른 글
<Hackerrank 문제풀이: 파이썬> Detect Floating Point Number (0) | 2020.11.15 |
---|---|
<Hackerrank 문제풀이: 파이썬> Finding the percentage (0) | 2020.11.14 |
<Hackerrank 문제풀이: 파이썬> Find the Runner-Up Score! (0) | 2020.11.13 |
<Hackerrank 문제풀이: 파이썬> Inner and Outer (0) | 2020.11.12 |
<Hackerrank 문제풀이: 파이썬> Loops (0) | 2020.11.12 |