seunghyun Note
[프로그래머스] - 올바른 괄호 with JAVA 본문
728x90
반응형
링크 : https://school.programmers.co.kr/learn/courses/30/lessons/12909
문제 풀이
1. 스택으로 문제 풀기
2. push, pop을 하고 empty일 경우 return false(반복문 안에서)
3. 최종적으로 empty가 될 경우 return true
import java.util.*;
class Solution {
boolean solution(String s) {
//stack 할당
Stack<Integer> stack = new Stack<>();
//문자열의 길이에 따른 stack
for(int i=0;i<s.length();i++){
//'(' 일때 push
if(s.charAt(i)=='(') stack.push(i);
//스택이 비어있는 경우 , 닫는 괄호를 입력 받았으나 pop할 원소가 없음
else if(stack.empty()) return false;
//그 외의 경우 stack 원소들을 pop
else stack.pop();
}
//모든 것이 완료돼서 empty일 경우
if(stack.empty())return true;
else return false;
}
}
다른 풀이
비슷한 방법이지만 스택 library를 사용하지 않고 count를 대신 스택으로 사용하기
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;
}
}
728x90
반응형
'코딩테스트 > 백준' 카테고리의 다른 글
[프로그래머스] - JadenCase 문자열 만들기 with JAVA (1) | 2024.01.04 |
---|---|
[프로그래머스] - 최솟값 만들기 with JAVA (1) | 2024.01.04 |
[프로그래머스] - 숫자의 표현 with JAVA (1) | 2024.01.04 |
[프로그래머스] - 다음 큰 숫자 with JAVA (1) | 2024.01.04 |
[프로그래머스] - 짝지어 제거하기 with JAVA (0) | 2024.01.04 |