아직 계정이 없으신가요? 회원가입

Dev. Talk

[HSAT 5회 정기 코딩 인증평가 기출] 성적 평가 C++ 시간초과

회원사진hjcho1996a
139 views2023-08-04 15:24

성적평가문제를 아래와 같이 구현했는데,

테케는 통과하는데 시간초과 되네요..ㅜㅜ

이렇게 완전 탐색하는 방법 외에는 떠오르지가 않는데 어떻게 풀어야 할까요?

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;
}