[Hackerrank] Python - 11 Finding the percentage

후유카와·2024년 11월 27일

Hackerrank

목록 보기
51/59

11. Finding the percentage

[ 난이도: Easy | 분야: Basic Data Types ]

1. 과제

과제 설명

주어진 코드 stub는 딕셔너리 안에 포함되어 있는 키/값을 읽어온다.(name:[marks])

marks의 평균을 구하고, 소수 두 자리까지 표현하라.

예제

marks의 키:값 쌍은

'alpha': [20,30,40]

'beta': [30,50,70]

query_name = 'beta'

query_name은 'beta'이므로 베타의 평균 점수는 (30+50+70)/3 = 50.0이다.

입력 형식

첫 번째 줄은 학생들의 수를 나타내는 정수 n을 나타낸다.

다음 n개의 줄은 공백으로 구분된 학생의 이름과 점수들을 나타낸다.

마지막 줄은 query_name을 포함하고 있고, 이 이름은 쿼리 안에 있다.

제약 사항

n은 2보다 크거나 같고 10보다 작거나 같다.

marks[i]는 0보다 크거나 같고 100보다 작거나 같다.

marks 배열의 길이는 3이다.

출력 형식

한 줄을 출력해라: 특정 학생 점수의 평균을 소수점 2자리까지 표현해라.

입력 예시0

3
Krishna 67 68 69
Arjun 70 98 63
Malika 52 56 60
Malika

출력 예시0

56.00

설명0

Malika의 점수는 {52,56,60}이고 이것의 평균은 (52+56+60)/3 => 56.00이다.

입력 예시1

2
Harsh 25 26.5 28
Anurag 26 28 30

출력 예시1

26.50

문제

if __name__ == '__main__':
    n = int(input())
    student_marks = {}
    for _ in range(n):
        name, *line = input().split()
        scores = list(map(float, line))
        student_marks[name] = scores
    query_name = input()

더보기

정답

if __name__ == '__main__':
    n = int(input())
    student_marks = {}
    for _ in range(n):
        name, *line = input().split()
        scores = list(map(float, line))
        student_marks[name] = scores
    query_name = input()
    
    mySum = sum(student_marks[query_name])
    myNum = len(student_marks[query_name])
    myAvg = "{:.2f}".format(mySum/myNum)
    print(myAvg)

©️Hackerrank. All Rights Reserved.

profile
안녕하세요! 저는 전자공학을 전공하며 하드웨어와 소프트웨어 모두를 깊이 있게 공부하고 있는 후유카와입니다. Verilog HDL, C/C++, Java, Python 등 다양한 프로그래밍 언어를 다루고 있으며, 최근에는 알고리즘에 대한 학습에 집중하고 있습니다. 기술적인 내용을 공유하고, 함께 성장할 수 있는 공간이 되기를 바랍니다. 잘못된 내용이나 피드백은 언제나 환영합니다! 함께 소통하며 더 나은 지식을 쌓아가요. 감사합니다!

0개의 댓글