728x90
반응형

scanf

더보기
# include <stdio.h>

/*
 문자열 30글자 이하로 입력.
 입력 예 (())(), ((()())()))), )(())(, ((())())())(, (((())((((())((((())))))))))
 출력 예 YES,	 NO,	NO,		NO,		YES
 그리고 결과는 Yes, No로 출력 

*/
int main(){
	char a[31]; // 문자열 30
	int flag = 0;
	int i;
	
	scanf("%s",&a); // ()입력 
		
	for(i = 0; i<30; i++)
	{
		if(a[i] == '(')
			flag++;
		else if(a[i] == ')')
			flag--;
		else
			continue; 
		if(flag<0)
			break;
	}
	
	if(flag==0)
		printf("Yes");
	else
		printf("No");
}

 

getchar

더보기
// 올바른 괄호

// 괄호가 입력되면 올바른 괄호이면 "YES", 올바르지 않으면 "NO"를 출력한다.
// (())() 이것은 괄호의 쌍이 올바르게 위치하는 거지만, (()()))은 올바른 괄호가 아니다.

// 입력 설명
// 첫 번째 줄에 괄호 문자열이 입력됩니다. 문자열의 최대 길이는 30이다.

// 출력 설명
// 첫 번째 줄에 YES, NO를 출력한다.
 
# include <stdio.h>

int main(){

	char input[31]; // 문자열 최대 길이는 30
	int sum = 0;
	int i=0;
	
	while((input[i]=getchar())!='\n')
	{
		if(input[i] =='(')
		{
			sum++;
		}
		else if(input[i] == ')')
		{
			sum--;
		}
		
		if(sum < 0)
		{
			break;
		}
		
		
		i++;	
	} 
	
	if(sum==0)
	{
		printf("YES\n");
	}
	else if(sum!=0)
	{
		printf("NO\n");
	}
	
}
 

[그림1] 올바른 괄호 성공
[그림2] 올바른 괄호 실패

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

728x90
반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기