https://school.programmers.co.kr/learn/courses/30/lessons/12909
Stack을 사용하는 문제입니다.
문제푸는 방식입니다.
문제 접근 순서
1. Stack을 사용하여 진행할것
2. Stack에서 '(' 가 오면 push.
2.1 ')'가 온다면 pop 한뒤 pop한 것이 '('가 아니거나 stack에 값이 아무것도 없다면 바로 return false;
3. 마지막이 되었는데 아직도 stack값이 있다면 '('가 아직 남아있으므로 return false;
코드입니다.
import java.util.*;
class Solution {
Stack<Character> stack = new Stack<Character>();
boolean solution(String s) {
boolean answer = true;
for(int i=0;i<s.length();i++){
if(s.charAt(i) == '('){
stack.push(s.charAt(i));
}else if(s.charAt(i) == ')'){
if(stack.isEmpty()) return false;
char temp = stack.pop();
if(temp =='('){
}else if(temp == ')'){
return false;
}
}
}
if(!stack.isEmpty()) return false;
return answer;
}
}
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스]타겟 넘버 - DFS (0) | 2023.02.07 |
---|---|
[프로그래머스]등굣길 - DP (0) | 2023.02.07 |
[프로그래머스]기능개발- 구현 (0) | 2023.02.02 |
[프로그래머스]베스트앨범 - 해쉬 + 우선순위큐 (0) | 2023.02.02 |
[프로그래머스][다시풀기]위장 - 해쉬 + 아이디어 (0) | 2023.02.01 |