programmers.co.kr/learn/courses/30/lessons/12909
코딩테스트 연습 - 올바른 괄호
괄호가 바르게 짝지어졌다는 것은 '(' 문자로 열렸으면 반드시 짝지어서 ')' 문자로 닫혀야 한다는 뜻입니다. 예를 들어 "()()" 또는 "(())()" 는 올바른 괄호입니다. ")()(" 또는 "(()(" 는 올바르지 않은
programmers.co.kr
문제 설명 :
올바른 괄호이면 true , 아니면 false 출력
문제 풀이 :
String s 길이만큼 반복문을 돌면서 열린괄호면 스택에 push 닫힌 괄호면 pop 합니다.
하지만 이렇게만 했을 때 ())) 이러한 경우도 true가 될 수 있기 때문에, 스택이 비어있을 때 닫힌 괄호가 들어온다면 push 해주어야합니다.
import java.util.Stack;
class Solution {
static boolean solution(String s) {
boolean answer = true;
Stack<Character> stack = new Stack();
int i = 0;
while(i<s.length()) {
char c = s.charAt(i++);
if(c==')') {
if(!stack.isEmpty()) stack.pop();
else stack.push(c);
}
if(c=='(') stack.push(c);
}
if(stack.isEmpty()) answer = true;
else answer = false;
System.out.println(answer);
return answer;
}
}
'ALGORITHM > 프로그래머스 | 백준 | 삼성 | 카카오' 카테고리의 다른 글
[백준] 17609번 회문 (0) | 2021.03.21 |
---|---|
[백준] 17413번 단어 뒤집기2 (0) | 2021.03.19 |
[프로그래머스] 단속카메라 (0) | 2021.03.16 |
[프로그래머스] 카펫 (0) | 2021.03.16 |
[프로그래머스] 쿼드압축 후 개수 세기 (0) | 2021.03.16 |