n명의 학생이 5개 과목에서 점수를 받았다고 가정합니다. 첫 번째 점수는 Kamal을 위한 것이고 다른 학생들을 위한 n-1개의 추가 점수가 있으며 각 학생은 5개의 과목을 가지고 있습니다. Kamal보다 더 많은 점수를 받은 학생의 수를 계산해야 합니다. 여기에서 학생이라는 클래스를 정의하여 각 학생의 점수를 로드합니다. 이 클래스에는 입력을 받는 하나의 Input() 함수와 주어진 5개 점수에서 학생의 점수를 계산하는 computeTotalScore() 함수가 있습니다.
따라서 입력이 다음과 같으면 n =4 점수 =[[25,45,32,42,30],[22,25,41,18,21],[37,42,48,45,25],[ 36,48,35,40,30]], 마지막 두 학생의 점수가 Kamal보다 높기 때문에 출력은 2가 됩니다.
이 문제를 해결하기 위해 다음 단계를 따릅니다. −
-
s :=n개의 요소가 있는 학생 유형 객체의 배열
-
initialize i :=0의 경우 i
-
모든 점수[i]를 s[i]에 로드
-
-
kamal_sc :=s[0]의 총점
-
개수 :=0
-
initialize i :=1의 경우 i
-
total :=s[i]의 총점
-
total> kamal_sc인 경우:
-
(1씩 증가)
-
-
-
반환 횟수
예시
이해를 돕기 위해 다음 구현을 살펴보겠습니다. −
#include <iostream> #include <vector> using namespace std; class Student{ public: int score[5]; void input(vector<int> v){ for(int i = 0; i < 5; i++) score[i] = v[i]; } int calculateTotalScore(){ int res = 0; for(int i = 0; i < 5; i++) res += score[i]; return res; } }; int main(){ int n = 4; vector<vector<int>> scores = {{25,45,32,42,30},{22,25,41,18,21},{37,42,48,45,25},{36,48,35,40,30}}; Student *s = new Student[n]; for(int i = 0; i < n; i++){ s[i].input(scores[i]); } int kamal_sc = s[0].calculateTotalScore(); int count = 0; for(int i = 1; i < n; i++){ int total = s[i].calculateTotalScore(); if(total > kamal_sc){ count++; } } cout << count; }
입력
4, {{25,45,32,42,30}, {22,25,41,18,21}, {37,42,48,45,25}, {36,48,35,40,30}}
출력
2