성적평가문제를 아래와 같이 구현했는데,
테케는 통과하는데 시간초과 되네요..ㅜㅜ
이렇게 완전 탐색하는 방법 외에는 떠오르지가 않는데 어떻게 풀어야 할까요?
C++ 고수님들 도와주세요!!
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
int main(int argc, char** argv)
{
int N;
cin>>N;
int arr[4][N];
// 점수 값 입력받기
for(int i=0;i<3;i++)
{
for(int j=0;j<N;j++)
cin>>arr[i][j];
}
// 총점 구하기
for(int j=0;j<N;j++)
arr[3][j] = arr[0][j]+arr[1][j]+arr[2][j];
// 등수 매기기 (0~N 까지 돌면서 자기자신보다 점수가 큰 사람이 있다면 +1 해준다.)
for(int i=0;i<4;i++)
{
int answer[N] = {0,};
for(int j=0;j<N;j++)
{
for(int k=0;k<N;k++)
{
if(arr[i][j]<arr[i][k])
answer[j]++;
}
}
for(int j=0;j<N;j++)
{
cout<<answer[j]+1;
cout<<" ";
}
cout<<"\n";
}
return 0;
}