File tree Expand file tree Collapse file tree 2 files changed +101
-0
lines changed
Expand file tree Collapse file tree 2 files changed +101
-0
lines changed Original file line number Diff line number Diff line change 1+ # [ level 2] 올바른 괄호 - 12909
2+
3+ [ 문제 링크] ( https://school.programmers.co.kr/learn/courses/30/lessons/12909 )
4+
5+ ### 성능 요약
6+
7+ 메모리: 55.1 MB, 시간: 21.97 ms
8+
9+ ### 구분
10+
11+ 코딩테스트 연습 > 스택/큐
12+
13+ ### 채점결과
14+
15+ 정확성: 69.5<br />효율성: 30.5<br />합계: 100.0 / 100.0
16+
17+ ### 제출 일자
18+
19+ 2025년 06월 05일 18:07:23
20+
21+ ### 문제 설명
22+
23+ <p >괄호가 바르게 짝지어졌다는 것은 '(' 문자로 열렸으면 반드시 짝지어서 ')' 문자로 닫혀야 한다는 뜻입니다. 예를 들어</p >
24+
25+ <ul >
26+ <li >"()()" 또는 "(())()" 는 올바른 괄호입니다.</li >
27+ <li >")()(" 또는 "(()(" 는 올바르지 않은 괄호입니다.</li >
28+ </ul >
29+
30+ <p >'(' 또는 ')' 로만 이루어진 문자열 s가 주어졌을 때, 문자열 s가 올바른 괄호이면 true를 return 하고, 올바르지 않은 괄호이면 false를 return 하는 solution 함수를 완성해 주세요.</p >
31+
32+ <h5 >제한사항</h5 >
33+
34+ <ul >
35+ <li >문자열 s의 길이 : 100,000 이하의 자연수</li >
36+ <li >문자열 s는 '(' 또는 ')' 로만 이루어져 있습니다.</li >
37+ </ul >
38+
39+ <hr >
40+
41+ <h5 >입출력 예</h5 >
42+ <table class =" table " >
43+ <thead><tr>
44+ <th >s</th >
45+ <th >answer</th >
46+ </tr >
47+ </thead >
48+ <tbody><tr>
49+ <td >"()()"</td >
50+ <td >true</td >
51+ </tr >
52+ <tr >
53+ <td >"(())()"</td >
54+ <td >true</td >
55+ </tr >
56+ <tr >
57+ <td >")()("</td >
58+ <td >false</td >
59+ </tr >
60+ <tr >
61+ <td >"(()("</td >
62+ <td >false</td >
63+ </tr >
64+ </tbody >
65+ </table>
66+ <h5 >입출력 예 설명</h5 >
67+
68+ <p >입출력 예 #1,2,3,4<br >
69+ 문제의 예시와 같습니다.</p >
70+
71+
72+ > 출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/challenges
Original file line number Diff line number Diff line change 1+ import java .util .*;
2+
3+ class Solution {
4+ boolean solution (String s ) {
5+ boolean answer = false ;
6+ Deque <Character > stack = new ArrayDeque <>();
7+ char [] charArr = s .toCharArray ();
8+
9+ for (int i = 0 ; i < charArr .length ; i ++) {
10+ char c = charArr [i ];
11+ if (c == '(' ) {
12+ stack .push (c );
13+ } else {
14+ if (i == 0 ) {
15+ break ;
16+ }
17+ if (!stack .isEmpty () && stack .peek () == '(' ) {
18+ stack .pop ();
19+ }
20+ }
21+
22+ if (i == charArr .length -1 && stack .isEmpty ()) {
23+ answer = true ;
24+ }
25+ }
26+
27+ return answer ;
28+ }
29+ }
You can’t perform that action at this time.
0 commit comments