스택/큐
올바른 괄호
def solution(s):
stack =[]
answer = True
for i in s :
if i == '(' :
stack.append(i)
else : # i == ')'인 경우
if stack == []: # 처음부터 )로 시작하면 False
answer = False
else:
stack.pop() # '('가 ')'와 짝을 이루면 '(' 제거
if stack != []:
answer = False
return answer
stack 정석대로 풀었다. '(' ')'가 짝이 맞아야 하니까 '('이면 append를 하고')'이 나오면 '('를 pop하면 된다.
def solution(s):
wt = 0
for c in s :
if c == '(' : wt += 1
elif c == ')' : wt -= 1
if wt < 0 : return False
return wt == 0
스택 이용하지 않은 풀이 이것도 굳인듯
import java.util.Stack;
class Solution {
boolean solution(String s) {
// Character형 스택 선언
Stack<Character> charStack = new Stack<>();
// 문자열을 char 배열로 변환하여 문자열의 각 문자를 순회
for (char ch : s.toCharArray()) {
if (ch == '(') {
charStack.push(ch);
} else if (ch == ')') {
if (charStack.isEmpty()) {
return false;
}
else {
charStack.pop();
}
}
}
// 스택이 비어있으면 true, 그렇지 않으면 false
return charStack.isEmpty();
}
}
class Solution {
boolean solution(String s) {
boolean answer = false;
int count = 0;
for(int i = 0; i<s.length();i++){
if(s.charAt(i) == '('){
count++;
}
if(s.charAt(i) == ')'){
count--;
}
if(count < 0){
break;
}
}
if(count == 0){
answer = true;
}
return answer;
}
}
스택 안쓰는 java 풀이 굳..!