본문 바로가기

Problem Solving/자료구조 및 구현

BOJ 2504 - 괄호의 값

문제 링크


https://www.acmicpc.net/problem/2504


문제 해결


1. 여는 괄호문자들은 스택(이 문제에선 Deque를이용했다)에 삽입한다. 이 때, 문자와 Boolean값을 Pair의 형태로 유지한다. 그 이유는 여는 괄호문자가 중복이 되었을 때, 곱하는 데에 사용되었는 지 체크하기 위해서다.


2. 만약 닫는 괄호문자 이 나오면, 

① 스택이 비어있거나, 제일 최근에 쌓인 문자가 닫는 괄호문자와 쌍을 이루지 않는다 → 잘못된 괄호열

② ①번이 아니고, 답에 괄호 값을 곱했다 값에 영향을 주지 않고 되돌아간다.

③ ①, ②번이 아니다 → 스택의 처음 괄호문자부터 최근에 쌓인 괄호문자까지의 괄호 값을 곱해서 답(ans)에 더     해준다. 


 3. 모든 괄호 문자열을 체크했는데 스택에 문자가 남아있다 잘못된 괄호열



주의할 점 || 생각해볼 점


 1. 2-③을 후에 꼭 최근에 쌓여있던 여는 괄호문자를 pop해야한다.



참고


 - 스택에 대한 나무위키 : https://namu.wiki/w/%EC%8A%A4%ED%83%9D(%EC%9E%90%EB%A3%8C%EA%B5%AC%EC%A1%B0)





※ 정확하고 부드러운 태클은 언제나 환영입니다.



'Problem Solving > 자료구조 및 구현' 카테고리의 다른 글

BOJ 6549 - 히스토그램에서 가장 큰 직사각형  (0) 2017.10.07
BOJ 14729 - 칠무해  (0) 2017.09.21
BOJ 2696 - 중앙값 구하기  (0) 2017.07.30
BOJ 5675 - 음주 코딩  (0) 2017.07.04
BOJ 2605 - 줄 세우기  (0) 2017.06.14