강의

멘토링

커뮤니티

Inflearn コミュニティ Q&A

tlswodnr4276671 のプロフィール画像
tlswodnr4276671

投稿した質問数

it 就職のためのアルゴリズム問題プール入門 (with C/C++) : コーディングテスト対比

19.怒り誘発者(一次元配列の必要性)

19번 분노유발자) 제 소스코드좀 봐주세요

作成

·

268

0

아래와 같이 했는데 첫번째만 통과하고 나머지 4개는 wrong answer이 나와서 20점을 맞았네요. 어디가 잘못됬는지 잘모르겠어서 질문드립니다. 

int main(void)
{
	int n;
	scanf("%d",&n);
	
	int arr[n];
	int i;
	for(i=0; i<n; i++)
	{
		scanf("%d",&arr[i]);
	}
	
	int j,flag=0,cnt=0;
	for(i=0; i<n; i++)
	{
		for(j=i+1; j<n; j++)
		{
			if(arr[i]<arr[j]) // 뒷사람 모두를 시청방해해야 분노유발자이기에,  
			{                   // 한명이라도 더큰 사람이 있다면 분노유발자가 아니다.  
				flag=1;
			}
		}
		if(flag==0) 
		{
			cnt++;
		}
	}
	
	printf("%d",cnt);
}




C++코테 준비 같이 해요!

回答 2

1

codingcamp님의 프로필 이미지
codingcamp
インストラクター

두 곳을 수정했습니다. 

int main(void)
{
	int n;
	scanf("%d",&n);
	
	int arr[n];
	int i;
	for(i=0; i<n; i++)
	{
		scanf("%d",&arr[i]);
	}
	
	int j,flag=0,cnt=0;
	for(i=0; i<n; i++)
	{
                flag=0;  //flag를 매 사람마다 초기화 해야 합니다.
		for(j=i+1; j<n; j++)
		{
			if(arr[i]<=arr[j]) // 뒷사람 모두를 시청방해해야 분노유발자이기에,   //키가 작을 때만 볼 수 없다는 얘기는 같으면 볼 수 있다는 것입니다.
			{                   // 한명이라도 더큰 사람이 있다면 분노유발자가 아니다.  
				flag=1;
			}
		}
		if(flag==0) 
		{
			cnt++;
		}
	}
	
	printf("%d",cnt);
}

1

배열의 개수를 임의로 넉넉하게 잡아주는건 어떨까요

tlswodnr4276671 のプロフィール画像
tlswodnr4276671

投稿した質問数

質問する