Engineering Note

54. 올바른 괄호(stack) 본문

Problem Solving/Olympiad in Informatics

54. 올바른 괄호(stack)

Software Engineer Kim 2021. 1. 8. 18:35

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

 

 

#문제해결 방법 

1.char형 배열에 입력된 문자열을 받는다.

2.'\0'(NULL,0)문자 전까지 ch[i] 각 배열 인덱스의 값이 '(' 인지 ')'인지 확인

2-1 '(' 이면 stack에 push, ')'이면 pop

2-2 이때 이미 스택이 비어있는 상태인데 즉 한번도 '('이 나오지 않았거나 나왔는데 ')'를 만나 pop해서 stack이 비어있을때 ')'를 이면 pop를 한다면 무조건 올바르지 않은 상태로 반복문 종료 시키고 "NO"값 출력

(이때 주의 할 사항 이때 3번 상태가 실행되지 않도록 상태 변수에 값을 변경시킴)

3. 정상적으로 for문이 종료 되었을때(상태변수로 확인하여 상태변수 값이 초기 설정값에 대해 변화가 없다면) stack이 비어있다면 개행과 폐행 괄호가 짝을 이루었다는 의미로 "YES" 출력

stack이 비어있지 않다면 '('가 stack에 남아 있다는 의미이고 그렇다면 올바르지 않은 괄호 "NO" 출력

 

'Problem Solving > Olympiad in Informatics' 카테고리의 다른 글

9. 모두의 약수  (0) 2021.01.13
55.기차운행(stack 응용)  (0) 2021.01.12
8.올바른 괄호  (0) 2021.01.08
7.영어 단어복구  (0) 2021.01.06
56. 재귀함수 분석  (0) 2021.01.06
Comments