Baekjoon 문제 풀기 (4344번 : 평균은 넘겠지) Python
4344번 : 평균은 넘겠지
1. 문제읽기
문자열과 수학을 잘 하면 풀 수 있는 문제..
처음에 문제를 읽었을 때 너무 쉬운데? 라고 생각을 했다가, 입력값에 학생 수와 점수가 포함되어 있는 것을 보고 조금 해결하기 복잡할 것 같다고 생각했다.
문자열로 값을 받아주고 학생 수와 점수를 구분해서 문제를 해결해야했다.
그래도 까다롭지 않은 문제여서 쉽게 해결했다.
마지막 문자열 포맷팅은 또 기억이 안나서 결국 찾아보았다.
알고리즘을 풀면서 문자열 포맷팅을 쓸 일이 거의 없어서 자꾸 까먹는 것 같다.
2. 제출 코드
문자열 포맷팅을 검색해서 소수점까지는 잘 출력해놓고 %를 못붙여서 end를 써서 해결했다.
그냥 %를 써주면 되는데..
c = int(input())
for _ in range(c):
arr = list(map(int, input().split()))
n = arr[0]
total = 0
for i in range(1, n+1):
total += arr[i]
avg = total / n
count = 0
for i in range(1, n+1):
if arr[i] > avg:
count += 1
ans = count/n*100
print(f"{format(ans, '.3f')}", end='%\n')
3. 공부할 것
문자열 포맷팅 정리가 잘되어있는 여기를 참조해서 공부해야겠다.
중괄호를 쓰는게 익숙하지 않아서 그런지 자꾸 까먹는다.
간단히 말하면 “ “ 안에 출력하고 싶은 문자열을 넣고, { } 안에는 출력하고 싶은 변수를 넣자!
아래는 이번 문제에서 필요했던 것만 다시 정리해보았다.
a = 123/12
print(f"{a:.2f}") # 10.25 출력
print(f"{format(a,'.3f')}") # 10.250 출력
print("{:.4f}".format(a)) # 10.2500 출력
댓글남기기