-
백준 4344 파이썬 평균은 넘겠지IT/알고리즘 2022. 2. 22. 01:01728x90
풀이
c = int(input()) e=[] for i in range(c) : b = list(map(int, input().split())) sum = 0 for ii in range(b[0]) : sum += b[ii +1] cnt=0 for ii in range(b[0]) : if b[ii+1] > sum/b[0] : cnt +=1 e.append((cnt/b[0])*100) b.clear() for i in range(c) : print(f'{e[i]:.3f}%')
여러가지로 고민 많이 하고 했는데,
요 분 블로그보고 제일 쉽게 이해했다.
https://wook-2124.tistory.com/244
c = int(input()) e=[] for i in range(c) : b = list(map(int, input().split())) sum = 0
1. 첫째 줄에는 테스트 케이스의 개수 C가 주어진다. 를 만족시키고,
2. e 라는 빈 리스트 만들어준다.
3. for 를 하는데 범위는 테스트의 개수만큼.
4. 둘째 줄부터 각 테스트 케이스마다 학생의 수 N(1 ≤ N ≤ 1000, N은 정수)이 첫 수로 주어지고, 이어서 N명의 점수가 주어진다. 를 만족하기 위해 작성한 b.
예제) 5 50 50 70 80 100
예제의 이 숫자를 넣는 곳.
5. sum 변수를 만든다.
for ii in range(b[0]) : sum += b[ii +1] cnt=0
6. range(b[0]) 은 예제에서 봤듯이, 5 50 50 70 80 100 중 학생의 인원수 5 만큼을 반복하는것이다.
반복은 학생 수 만큼 하면서 sum은 학생의 점수를 더할 수 있게 b[ii+1] 을 해준다.
다음 cnt=0 변수를 만들어두는데,
for ii in range(b[0]) : if b[ii+1] > sum/b[0] : cnt +=1
7. 같은 반복문으로, 만약 학생의 점수(b[ii+1])가 평균(sum/b[0]) 보다 크다면,
cnt를 하나씩 올려준다.
평균을 넘는 학생들의 비율을 반올림하여 소수점 셋째 자리까지 출력한다.
평균 넘는 학생들을 찾아야 하기 때문.
e.append((cnt/b[0])*100) b.clear()
8. 맨 위에서 만들어둔 e 리스트에, 평균을 넘는 학생 수(cnt) / 학생 총 수(b[0] * 100 = 비율 을 해준다.
9. b.clear() 는 다음 for문이 돌 때 b의 입력된 값을 없애준다.
for i in range(c) : print(f'{e[i]:.3f}%')
10. 마지막 반복문 작성 후,
최종 값을 출력해주는데, 문제에서 원하는대로 소수점 셋째자리까지 + '%'를 붙여 출력하기 위해 f-string 문자열을 사용.
소수점 관련된 f-string 문자열의 활용은 위와 같이 작성해주면 된다.
f 적고 세미콜론후 {} 안에 필요한 값 작성, 이후 : 사용 다음 콤마(.)와 원하는 소수점범위(3) 작성 후 f로 적어둔다.
n = int(input()) for i in range(n): input_score = list(map(int, input().split(' '))) avg = sum(input_score[1:])/input_score[0] cnt = 0 for score in input_score[1:]: if score > avg: cnt += 1 rate = cnt / input_score[0] * 100 print(f'{rate:.3f}%')
이건 다른 분 코드보다가 , 이해되기도 하고 더 간결한듯하여 가져와봄.
근데 이거는 출력할 때 입력하면 바로 출력이 하나씩 나와버려서, 아무래도 위에거가 식은 더 길지만 이해하기에 수월하다.
배운것
f-string, for문 안에 for를 어떻게 구성해야 하는지 (연속 for 문 작성)
'IT > 알고리즘' 카테고리의 다른 글
백준 1065 한수 파이썬 (0) 2022.02.24 백준 4673 셀프 넘버 파이썬 (0) 2022.02.23 백준 8958 OX퀴즈 파이썬 (0) 2022.02.21 백준 1546 평균 파이썬 (0) 2022.02.21 백준 3052 나머지 파이썬 (0) 2022.02.20