백준 4344번 - 평균은 넘겠지 with python
Q. 대학생 새내기들의 90%는 자신이 반에서 평균은 넘는다고 생각한다. 당신은 그들에게 슬픈 진실을 알려줘야 한다.
입력> 첫째 줄에는 테스트 케이스의 개수 C가 주어진다. 둘째 줄부터 각 테스트 케이스마다 학생의 수 N(1 ≤ N ≤ 1000, N은 정수)이 첫 수로 주어지고, 이어서 N명의 점수가 주어진다. 점수는 0보다 크거나 같고, 100보다 작거나 같은 정수이다.
출력> 각 케이스마다 한 줄씩 평균을 넘는 학생들의 비율을 반올림하여 소수점 셋째 자리까지 출력한다.
https://www.acmicpc.net/problem/4344
이번엔 먼저 코드를 포스팅하고 설명을 진행하겠다.
N = int(input())
for i in range(N):
A = list(map(int,input().split()))
count = 0
avg = sum(A[1:])/A[0]
for j in range(1,len(A)):
if (A[j] > avg):
count +=1
prob = format((count/A[0])*100,".3f")
print(str(prob)+"%")
먼저 첫째 줄에 테스트의 개수가 나타나있고, 이 수만큼 반복을 진행해야 하므로 for문을 사용해주어야 한다.
그리고 다음 줄에 입력받은 수를 list로 저장해준다. A에 저장을 해두도록 하겠다.
A에서 첫번째 값을 제외한 나머지 값들로 평균을 계산해준다.
그 후, if문을 활용하여 평균이 넘는 친구들만 개수를 세도록 한다. 이 개수를 count라는 변수에 저장을 한다,
이 count를 통해 비율을 계산해주고,
format()함수를 통해 소수점 자리 수를 조정해준다.
소수 셋 째자리까지 출력하기 위해선
format(값,".3f")를 사용한다.
마지막으로, %와 같이 출력해주기 위해서 print()함수에 값과 %를 둘다 넣어줘야 한다.
원래 숫자와 문자를 같이 출력하려면 print(수,문자)처럼 콤마(,)로 두 인자를 구분해주어야하는데,
콤마로 구분해주면 그 두 값 사이에 공백이 발생하게 된다.
공백을 출력해주지 않기 위해 값을 문자형으로 바꾸어주고, +로 두 문자를 연결해주면 된다.
'우당탕탕 파이썬 with 하루하나 알고리즘' 카테고리의 다른 글
백준 4673 파이썬 - 생성자가 아닌 셀프 넘버 출력하기! (0) | 2022.04.02 |
---|---|
백준 15596 파이썬 - 함수 생성하기 (0) | 2022.04.01 |
백준 8958 파이썬 - 연속 정답에 추가 점수 부여하고 틀리면 초기화하기! (0) | 2022.03.30 |
백준 3052 파이썬 - 서로 다른 값의 개수 출력하기(feat. set함수) (0) | 2022.03.29 |
백준 2577 파이썬 - 숫자가 총 몇 번 쓰여졌을까? (0) | 2022.03.28 |