나 개발자 진짜 되냐?

백준 C++ 1546번 평균 ( fixed, setprecision ) 본문

C++을 시작해봐요!/단계문제를 풀어보아요!

백준 C++ 1546번 평균 ( fixed, setprecision )

Snow Rabbit 2026. 3. 18. 20:55

반갑습니다.

일주일 만이군요.

 

근래 안 보였던 이유..(?)는

111% 슈퍼드리머 서류에 붙어서

과제전형 봤습니다.

 

어려웠습니다........

이 말밖엔...

 

오늘은...

일주일 만에 왔는데

스페셜 저지가 붙어버렸네요.

 

평균! 풀어보겠습니다.


 

 

 

이 녀석..

성적을 조작하다니..

 

 

항상 느끼지만 문제를 이해하는 게 참 어렵다.

 

사실은 그러면 안 되지만 계산기를 써봤다.

50/70*100 하니까 

 

아무래도 상대오차가 10-2라는 이야기는

소수점 셋째 자리를 반올림하라는 거 같았다.

 

 

예제 입력 1을 보면

40 80 60 다 더해서 3으로 나누면 

평균 60점이다.

근데

40/80*100

= 50

60/80*100

= 75

80/80*100

= 100

 

(50 + 100 + 75) / 3 = 75

 

이런 식인 거 같다.

 

근데 예시 2에서

소수 2번째 자리까지 출력하라는 뜻이 아니라는 글을 보았다..

 

 

10/30*100

= 33.33333..

33.33

 

20/30*100

= 66.666666...

66.67

 

30/30*100

= 100

 

33.33 + 66.67 + 100 / 3

= 66.666667

 

출력은 그냥 하는 게 맞는 거 같다.

 

내 계획

1. 숫자를 입력받아서

2. 가장 큰 수를 맨 앞에 두고

3. 그 친구들이랑 비교해서 계산해 주기

 

근데 문제가 뭐냐.

소수점... 어떻게 나누더라 금세 까먹었다..

분명 알았는데..... 긁적

 

일단 그냥 풀어봤다.

 

예제 1번 답이 75.0 이 나와야 하는데 75가 나왔다.

흠.. 혹시 값을 곱해줄 때 하나는 int로 줘서 그런가?

 

바꿔봤는데도 별 차이가 없다.

 

일단 내 식을 공개한.. 다!

 

인지 씨를 찾았다.

 

1. float보다 더 좋은 게 있습니다.

 

ㅇㅅㅇ? 네?

하고 예제 8번을 보니..

이 괴물숫자는 못 봤는데..ㄷㄷ

 

float는 7자리

double은 15자리까지 아서

더 정밀하다.

 

 

2. 출력형식 바꾸세요

 

내가 말하던 그 소수점 구하는 그 식인가 보다.

 

3. sort / reverse 잘했습니다.

하지만 max라면 더 좋았을 거 같아요!

 

max는 시간복잡도 O(N)

sort는 O(N log N)

이여서 max가 더 좋다고 한다.

 

헉.. 그러네..

사실 그 sort 내림차순이 기억 안 나서.. 긁적..

이렇게 했는데.

 

sort(v.begin(), v.end(), greater <float>());

 

내림차순을 하려면

가장 큰 수부터라고 표현하는 식

greater 해주면 된다.

 

그리고 소수점을 고정하기 위한 식..!

 

cout << fixed << setprecision(2)

2든 4든 8이든.. 15든..

 

이 식을 위에 써주고

답을 cout << sum / n; 해주면 된다.

 

 

 

근데 이게 진짜 낚시 권법(?)이라는 사실을 알았다.

열심히 위에다가 식을 썼는데..

..

이 식을 이렇게

보면 공통적으로 /m * 100이 들어가고

분배법칙에 의해

 

이렇게 안 하고 다 더 해준다음에 /m * 100 해줘도 된다는 것!!!!!

 

그래서 일일이 하나하나 for문으로 더해줄 필요가 없어졌다.

 

입력 때 그냥 가장 큰 수를 찾아서 m으로 넣어주고,

입력때 그냥 다 더해주고 /m * 100만 해주면 끝..!

 

그다음에 뭐 몇 글자까지 해서

fix >> setprecision 해주면 된다.

 

 


 

충격적인 사실

처음에 공개했던 내식을 제출했더니

.. 답이 맞았다..

 

좋긴 하다.

 

하지만 나는 틀린 줄 알고

인지 씨를 찾았던......

 

스페셜 저지!! 완!!