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 출력

댓글남기기