meong_j
기록하는 습관.
meong_j
전체 방문자
오늘
어제
  • 분류 전체보기 (176)
    • 개인 공부 정리 (0)
    • 서버 운영 (37)
      • Linux (36)
    • Frontend (11)
      • Vue.js (10)
    • Backend (70)
      • Java (4)
      • Python (22)
      • Django (38)
      • Spring (6)
    • Database (5)
      • Oracle (4)
      • MySQL (1)
      • MariaDB (0)
    • Android (14)
      • Kotlin (6)
    • 배포 (9)
      • Docker (8)
      • AWS (1)
    • IT_study (29)
      • Coding test (17)
      • 알고리즘 (5)
      • 스터디 (6)

블로그 메뉴

  • 홈
  • 태그
  • 방명록
  • github

인기 글

반응형

태그

  • 개발자도서
  • gabagecollecter
  • docker
  • 안드로이드adaptor
  • 리눅스방화벽
  • 테크커리어
  • django
  • dp #알고리즘
  • SASS Variables
  • router-link
  • Proxy
  • 중첩라우트
  • Kotlin
  • 배포인프라
  • cpu사용률
  • dockersecret
  • DHCP
  • 코틀린자료형
  • 이차원배열정렬
  • 리눅스인증

최근 댓글

최근 글

250x250
hELLO · Designed By 정상우.
meong_j

기록하는 습관.

IT_study/Coding test

[Coding test Basic with c++] 올바른 괄호

2021. 12. 16. 23:12
728x90
반응형

문제

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

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

▣ 출력설명 첫 번째 줄에 YES, NO를 출력한다.

 

입력예제

(()(()))(()

출력예제

NO

 

풀이

#include<stdio.h>
using namespace std;

int main(){
	// 올바른 괄호 
	char a[100];
	int i, cnt=0;
	scanf("%s", &a);
	for(i=0; a[i]!='\0'; i++){
		if(a[i]=='(') cnt++;
		else if(a[i]==')') cnt--;
		if(cnt<0) break;
	}
	
	if(cnt==0) printf("YES\n");
	else printf("NO\n");
	
   	return 0;
    
}

'(' 과 ')' 이 한 쌍씩으로 있어야 올바른 괄호기 때문에 '(' 면 개수를 더하고(+), ')' 면 개수를 빼는(-) 형식으로 해서 마지막 카운트가 0이면 괄호 한 쌍씩 생긴다는 말이되게 된다.

하지만 다음과 같은 경우가 생기면 결과는 0이지만, 괄호 한 쌍씩 올바른 괄호가 아니게 된다. 이럴 경우 음수(-) 값이 나오면 무조건 잘못된 괄호기 때문에 break로 끝내면 된다.  

(  (  )  )   )   (
1 2 1 0  -1  0
반응형
저작자표시 비영리 변경금지 (새창열림)

'IT_study > Coding test' 카테고리의 다른 글

[Coding test Basic with c++] 자릿수의 합  (0) 2021.12.21
[Coding test Basic with c++] 모두의 약수  (0) 2021.12.21
[Coding test Basic with c++] 영어단어 복구  (0) 2021.12.16
[Coding test Basic with c++] 숫자만 추출  (0) 2021.12.16
[Coding test Basic with c++] 나이 계산  (0) 2021.12.16
    'IT_study/Coding test' 카테고리의 다른 글
    • [Coding test Basic with c++] 자릿수의 합
    • [Coding test Basic with c++] 모두의 약수
    • [Coding test Basic with c++] 영어단어 복구
    • [Coding test Basic with c++] 숫자만 추출
    meong_j
    meong_j
    #it #개발일기 #개발공부 #개발자 #백앤드 #생각정리 #시간은 실력에 비례한다 #뭐든지 꾸준히 열심히 #오늘의 내가 내일의 나를 만든다

    티스토리툴바