나의 풀이
import java.util.*;
class Solution {
boolean solution(String s) {
Stack<Character> stack = new Stack<>();
for (int i = 0; i < s.length(); i++) {
if (s.charAt(i) == '(') {
stack.push(s.charAt(i));
} else {
try {
stack.pop();
} catch (EmptyStackException e) {
return false;
}
}
}
return stack.isEmpty();
}
}
다른사람의 풀이1
import java.util.Stack;
class Solution {
boolean solution(String s) {
boolean answer = true;
Stack<Character> st = new Stack<>();
for (int i = 0; i < s.length(); i++) {
if (s.charAt(i) == '(') {
st.push('(');
} else if (s.charAt(i) == ')') {
if (st.isEmpty()) {
answer = false;
break;
} else {
st.pop();
}
}
}
if(!st.isEmpty()) {
answer = false;
}
return answer;
}
}
다른사람의 풀이2
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;
}
}
'프로그래머스(자바) > LV.2(자바)' 카테고리의 다른 글
다음 큰 숫자→'문자열'에서 특정 요소 개수 세기(replace)★★ (0) | 2022.12.24 |
---|---|
피보나치 수→ 오버플로우 극복방법: %★★★ (1) | 2022.12.24 |
이진 변환 반복하기 → 특정 요소 개수 replace() 이용★★★ + 10진수→2진수★ (0) | 2022.12.23 |
최솟값 만들기 → 동일 for문 안에서 서로 반대로 곱하기★★ (0) | 2022.12.23 |
JadenCase 문자열 만들기→Character.toUpperCase() + 삼항연산자 (0) | 2022.12.23 |