프로그래머스 Level 2. 올바른 괄호 (Java)알고리즘/프로그래머스2023. 7. 20. 00:51
Table of Contents
반응형
문제 링크
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
풀이 코드
import java.util.*;
class Solution {
boolean solution(String s) {
boolean answer = true;
Stack<Character> stack = new Stack<>();
for(char x : s.toCharArray()) {
if(x == '(') stack.push(x);
else {
if(!stack.isEmpty()) {
stack.pop();
} else {
return false;
}
}
}
if(stack.isEmpty()) answer = true;
else answer = false;
return answer;
}
}
아이디어
스택을 이용하여 풀면 되는 간단한 문제이다.
❗ 풀이 방법
Stack<Character> stack = new Stack<>();
으로 Character가 들어갈 수 있는 스택을 선언한다.- s 문자열을
toCharArray()
메소드를 통하여 char 타입의 배열로 만든 뒤 탐색하며 다음의 로직을 수행한다.- 현재 문자가
여는 괄호
라면 stack에push()
한다. - 현재 문자가
닫는 괄호
라면- stack이 비어있지 않는 경우 stack에서
pop()
한다. - stack이 비어있다면 올바른 괄호가 아니므로, 바로
return false
한다.
- stack이 비어있지 않는 경우 stack에서
- 현재 문자가
- s 문자열의 탐색이 끝나고 난 뒤에 stack이 비어있다면
answer = true
, stack이 비어있지 않다면answer = false
로 하여 answer를 최종적으로 return한다.
🙂 새로 알게된 점
- 간단한 문제이기 때문에 새로 알게된 점은 없다. 앞으로 괄호의 쌍을 찾는 문제나 무언가의 쌍을 찾는 문제라면 일단 stack을 고려해보면 될 것 같다.
반응형
'알고리즘 > 프로그래머스' 카테고리의 다른 글
프로그래머스 Level 2. 타겟 넘버 (Java) (0) | 2023.07.23 |
---|---|
프로그래머스 Level 2. 시소 짝꿍 (Java) (0) | 2023.07.20 |
프로그래머스 Level 2. 기능 개발 (Java) (0) | 2023.07.20 |
@Caffeine Developer :: 개발스토리
개발을 하며 만났던 문제들과 해결 과정, 공부한 내용 등을 기록합니다.
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!