반응형
문제 설명
문제의 포인트
- for문을 많이 쓸 수밖에 없는 문제. 하지만 for문을 줄일 방법을 이리저리 적용해보자
- 소수점 세자리까지 출력하는 함수를 알아야 한다.(format함수)
- 직전 1157번 문제보단 훨씬 쉽다.
문제 풀이 방법
4344번 문제는 여태까지 배운 기본기를 잊지 않고 있는지 확인할 수 있는 좋은 문제이다.
- 문제에서 첫 줄에 ‘첫째 줄에는 테스트 케이스의 개수 C가 주어진다.’ 고 했으니, 첫 줄에 정수를 입력받아준다. 이 때 for 문 돌리려면 정수형로 받는 게 편하다.
C = int(input())
2. 예제 형태가
5
5 50 50 70 80 100
7 100 95 90 80 70 60 50
3 70 90 80
3 70 90 81
9 100 99 98 97 96 95 94 93 91
이렇게 되어있으면 첫 줄에서 입력한 정수만큼 여러 줄을 입력할 수 있도록 짜야 한다.
3. 합계도 구하고 평균도 구하고 갯수도 구해야 하니 리스트 형태로 받아야 한다.
for i in range(C):
group = list(map(int, input().split()))
4. 평균 이상인 점수의 갯수를 세기 위해 count 변수를 생성한다.
count = 0
5. 평균 점수를 산출하기 위해 for문을 돌리지 않고 파이썬 리스트의 기본 기능만을 이용해 평균을 구할 수 있다.
average = sum(group[1:])/group[0]
6. 이제 평균이 넘는 점수들을 for문을 이용해 count 변수에 넣어주면 된다.
for i in group[1:]:
if i > average:
count += 1
7. 마지막으로 이 문제에서 가장 까다로울 수 있는 부분인 출력 부분. 특별히 이번엔 출력 부분만 잘게 쪼개서 보자.
7-1. 출력 결과는 소수점 셋째 자리인데, 애초에 소수점 셋째 자리까지 안 나오는 결과값은 round로 출력할 수 없다. 즉, 다른 방법을 찾아야 한다는 뜻.
7-2. 이 때는 파이썬의 format 함수를 사용하면 된다.
간단한 format함수 사용 예시
#소수점 셋째자리에서 반올림해서 소수점 둘째자리까지 출력
number = "{:.2f}".format(10.56785678)
print(number)
-----------------------console---------------------------
10.57
print("{:.3f}".format(count/len(group[1:])*100))
-----------------------console---------------------------
40.000
먼저 이렇게 입력하고 결과값을 확인한다.
7-3. 결과값이 원하는대로 나왔으면 출력 결과에서 요구하는대로 형식을 맞춰주면 끝이다.
print("{:.3f}".format(count/len(group[1:])*100),"%", sep='')
-----------------------console---------------------------
40.000%
정답 코드
C = int(input())
for i in range(C):
group = list(map(int, input().split()))
count = 0
average = sum(group[1:])/group[0]
for i in group[1:]:
if i > average:
count += 1
print(count, len(group[1:]))
print("{:.3f}".format(count/len(group[1:])*100),"%", sep='')
반응형
'IT' 카테고리의 다른 글
파이썬 기초 / Python / dictionary / 딕셔너리 (0) | 2023.05.24 |
---|---|
파이썬 기초 / Python / 지우기 (0) | 2023.05.22 |
백준 / Python / 1316 / 그룹 단어 체커 / 문제풀이 / 상세설명 (0) | 2023.05.22 |
파이썬 기초 / Python / format / 포맷팅 (0) | 2023.05.20 |
백준 / Python / 2444 / 별 찍기 - 7 / 문제풀이 (0) | 2023.05.18 |
백준 / Python / 5622 / 다이얼 / 문제풀이 (0) | 2023.05.04 |
백준 / Python / 2675 / 문자열 반복 / 문제풀이 (0) | 2023.05.03 |
파이썬 기초 / Python / 인덱스 (0) | 2023.04.27 |
댓글