• 카테고리

    질문 & 답변
  • 세부 분야

    알고리즘 · 자료구조

  • 해결 여부

    미해결

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

20.01.04 22:51 작성 조회수 142

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




답변 2

·

답변을 작성해보세요.

1

두 곳을 수정했습니다. 

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

lon님의 프로필

lon

2020.01.05

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