개발 공부/알고리즘 문제풀이

[백준] 4344. 평균은 넘겠지

5묘 2022. 7. 18. 00:31
 

4344번: 평균은 넘겠지

대학생 새내기들의 90%는 자신이 반에서 평균은 넘는다고 생각한다. 당신은 그들에게 슬픈 진실을 알려줘야 한다.

www.acmicpc.net


이 문제에서 배운 것은 round() 함수가 소수점이 0일 경우에는 자릿수만큼 출력을 안해주고, 그냥 생략해버린다는 것이다. 그래서 특정 소수점 자리수만큼 출력하고 싶다면 {:.3f} 이런 식으로 .format() 함수의 변수 위치에 자릿수를 표기해주는 것이 좋다.
그러면 소수점 뒷 자리가 모두 0이더라도 적어둔 숫자만큼 자릿수를 표기한다.  

# 4344 평균은 넘겠지

C = int(input())

for tc in range(1, C+1):
    # 우선 들어오는 숫자들을 리스트로 저장.
    arr = list(map(int, input().split()))
    # 두 번째 인덱스부터 끝까지 더한 수를 사람수(arr[0])으로 나눠준다.
    avg = sum(arr[1:]) / arr[0]

    # arr 안에 있는 수 중 평균보다 높은 수를 세서 사람 수로 나눈 후 * 100을 해준다.
    # 소수점 셋째 자리까지 나타내야 하므로, .format의 변수가 들어갈 자리에 :.3f 이렇게 표기해준다.
    # round(수, 3) 이렇게 하면 40.000% 처럼 끝이 0인 애는 자동으로 없애서 40.0%으로만 나온다.
    cnt = 0
    for i in range(1, len(arr)):
        if arr[i] > avg:
            cnt += 1

    print('{:.3f}%'.format((cnt / arr[0]) * 100))

'개발 공부 > 알고리즘 문제풀이' 카테고리의 다른 글

[백준] 4673. 셀프 넘버  (0) 2022.07.18
[백준] 15596. 정수 n개의 합  (0) 2022.07.18
[백준] 8958. OX퀴즈  (0) 2022.07.17
[백준] 1546. 평균  (0) 2022.07.17
[백준] 3052. 나머지  (0) 2022.07.17