인프런 커뮤니티 질문&답변

tlswodnr427님의 프로필 이미지
tlswodnr427

작성한 질문수

it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비

19. 분노 유발자(1차원 배열의 필요성)

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

작성

·

196

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

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

tlswodnr427님의 프로필 이미지
tlswodnr427

작성한 질문수

질문하기