-
[SWEA] 1984. 중간 평균값 구하기 c++Coding Test/SW Expert Academy 2022. 11. 15. 14:22728x90
- 문제
10개의 수를 입력 받아, 최대 수와 최소 수를 제외한 나머지의 평균값을 출력하는 프로그램을 작성하라.
(소수점 첫째 자리에서 반올림한 정수를 출력한다.)- 문제 해결
1. sort함수를 사용하여 오름차순 정렬을 한다.
2. accumulate함수를 사용하여 벡터 원소들의 총 합을 구한다.
최댓값, 최소값을 제외하기 위해 vec.begin() + 1 ~ vec.end() - 1로 범위 지정 한다.
3. 소수점 계산을 위해 double형에 계산한 값을 저장한다.
4. round함수를 사용하여 소수점 첫째 자리에서 반올림한다.
(floor 함수를 사용한다면 결과에 0.5를 더하면 된다.)
#include<iostream> #include <algorithm> #include <numeric> #include <vector> #include <cmath> using namespace std; int main(int argc, char** argv) { int test_case; int T; cin>>T; for(test_case = 1; test_case <= T; ++test_case) { vector<int> vec(10, 0); for(int i = 0; i < 10; i++){ cin >> vec[i]; } sort(vec.begin(), vec.end()); double sum = accumulate(vec.begin() + 1, vec.end() - 1, 0); double avg = sum / 8; cout << "#" << test_case << " " << round(avg) << endl; } return 0; }
728x90'Coding Test > SW Expert Academy' 카테고리의 다른 글
[SWEA] 1979. 어디에 단어가 들어갈 수 있을까 c++ (0) 2022.11.16 [SWEA] 1983. 조교의 성적 매기기 c++ (0) 2022.11.15 [SWEA] 1989. 초심자의 회문 검사 c++ (0) 2022.11.15 [SWEA] 2001. 파리 퇴치 c++ (0) 2022.11.15 [SWEA] 2005. 파스칼의 삼각형 c++ (0) 2022.11.15