APS/SWEA

[APS][C++] SWEA D1 2071번 평균값 구하기 (feat. 반올림)

청월누리 2025. 2. 12. 01:28

[APS][C++] SWEA D1 2071번 평균값 구하기

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com


문제

10개의 수를 입력 받아, 평균값을 출력하는 프로그램을 작성하라.
(소수점 첫째 자리에서 반올림한 정수를 출력한다.)

제약 사항

  • 각 수는 0 이상 10000 이하의 정수이다.

입력

  • 가장 첫 줄에는 테스트 케이스의 개수 T가 주어지고, 그 아래로 각 테스트 케이스가 주어진다.
  • 각 테스트 케이스의 첫 번째 줄에는 10개의 수가 주어진다.

출력

  • 출력의 각 줄은 '#t'로 시작하고, 공백을 한 칸 둔 다음 정답을 출력한다. (t는 테스트 케이스의 번호를 의미하며 1부터 시작한다.)

풀이

문제 자체는 어렵지 않으나, 정수 10개의 평균을 계산한 후 소수점 첫째 자리에서 반올림해야 한다.

  • <cmath> 헤더 내의 floor 함수를 활용하여 반올림 함수 구현
    • 평균 계산 값에 0.5를 더한 후, 내림을 하면 반올림 구현 가능
  • 정수형으로 값을 받고 평균을 계산할 떄, double 형으로 타입케스팅이 되어야 정상적으로 반올림 가능

코드

#include <cmath>
#include <iostream>

using namespace std;

int main() {
  int test;
  cin >> test;

  for (int t = 1; t <= test; t++) {
    int arr[10];
    for (int i = 0; i < 10; i++) {
      cin >> arr[i];
    }

    int sum = 0;
    for (int i = 0; i < 10; i++) {
      sum += arr[i];
    }

    cout << "#" << t << " " << floor((double)sum / 10 + 0.5) << "\n";
  }

  return 0;
}

결과


오답 원인

  • 첫 풀이에서 반올림을 진행하지 않았음 (문제 똑바로, 제대로 읽자...)