Question
https://school.programmers.co.kr/learn/courses/30/lessons/12909
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
Code
import java.util.*;
class Solution {
boolean solution(String s) {
boolean answer = true;
Stack<Character> stack = new Stack<>();
for (char item : s.toCharArray()) {
if (item == '(') {
stack.push('(');
} else {
if (!stack.isEmpty()) {
stack.pop();
} else {
return false;
}
}
}
return stack.isEmpty() ? true : false;
}
}
- toCharArray()
1
- 문자열을 문자(char) 배열로 변환
- 💡 괄호 문자열 s를 하나하나 char 타입으로 순회하면서 '('이면 스택에 넣고, ')'이면 스택에서 제거하는 방식으로 올바른 괄호인지 판단
- ❓toCharArray() 없이 charAt()으로 쓴다면? 똑같이 동작하지만, 반복문 내에서 매번 charAt(i)를 호출하는 것은 약간의 오버헤드가 있을 수 있다.
for (int i = 0; i < s.length(); i++) {
char item = s.charAt(i);
...
}
출처
https://hy-ung.tistory.com/100
프로그래머스 - 올바른 괄호(JAVA)
문제 링크 문제 설명 괄호가 바르게 짝지어졌다는 것은 '(' 문자로 열렸으면 반드시 짝지어서 ')' 문자로 닫혀야 한다는 뜻입니다. 예를 들어 "()()" 또는 "(())()" 는 올바른 괄호입니다. ")()(" 또는 "(
hy-ung.tistory.com
반응형
'Coding Test > 자료구조' 카테고리의 다른 글
[프로그래머스 / Java] Lv.1 햄버거 만들기 (0) | 2025.05.05 |
---|---|
[Data Structure] 큐 (Queue) (0) | 2025.05.05 |
[Data Structure] 자료구조 (0) | 2025.05.04 |
[Data Structure] 스택 (Stack) (0) | 2025.05.02 |
[BAEKJOON / Java] Silver 스택 2 (1) | 2025.05.01 |