Algorithm/BaekJoon

(파이썬) 백준 4344번 "평균은 넘겠지"

innit 2022. 4. 19. 23:37

https://www.acmicpc.net/problem/4344

 


# 문제상황

 

이 문제는 '소수점 셋째 자리까지' 라는 출력 형식이 있습니다. 보통 실수 40을 그냥 출력하게 되면 '40.0'이라고만 출력되지, '40.000'이라고 출력되지 않습니다. 소수점 둘째 자리, 셋째 자리에 있는 0은 생략되죠.

어떻게 하면 '40.000'과 같은 출력 형식을 지킬 수 있을까요?

 

 

 

 


# 해결

 

소수점의 출력 형식을 지키기 위해서는 문자열 포매팅을 하는 방법을 알아야 합니다. 문자열  포매팅의 방법에는

 

1. 포맷 코드를 이용하는 방법

2. format 함수를 이용하는 방법

3. f 문자열 포매팅

 

이렇게 총 3가지 방법이 있는데, 그 중에서 가장 간결하게 코드를 짤 수 있는 'f 문자열 포매팅' 방법을 사용할 것입니다. f 문자열 포매팅 사용방법은 아래 포스트에서 확인해주세요.

https://beluga9.tistory.com/346

 

f 문자열 포매팅

기본 사용법 name = '홍길동' age = 30 x = f'이름은 {name}, 나이는 {age}입니다.' 딕셔너리 d = {'name':'홍길동', 'age':30} x = f'이름은 {d["name"]}, 나이는 {d["age"]}입니다.' 정렬 val = 'hi' l = f'{va..

beluga9.tistory.com

 

 

 

 


# 답

t = int(input())
for _ in range(t):
    a = list(map(int, input().split()))
    n = a.pop(0)
    avg = sum(a) / n
    cnt = 0
    for i in a:
        if i > avg: cnt += 1
    print(f'{round(cnt/n*100, 3):.3f}%')

 

 

 

728x90
반응형