https://school.programmers.co.kr/learn/courses/30/lessons/12909
ํ๋ก๊ทธ๋๋จธ์ค
์ฝ๋ ์ค์ฌ์ ๊ฐ๋ฐ์ ์ฑ์ฉ. ์คํ ๊ธฐ๋ฐ์ ํฌ์ง์ ๋งค์นญ. ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฐ๋ฐ์ ๋ง์ถคํ ํ๋กํ์ ๋ฑ๋กํ๊ณ , ๋์ ๊ธฐ์ ๊ถํฉ์ด ์ ๋ง๋ ๊ธฐ์ ๋ค์ ๋งค์นญ ๋ฐ์ผ์ธ์.
programmers.co.kr
Stack ์ปฌ๋ ์
- Java์ Stack ์ปฌ๋ ์ ์ ์ฌ์ฉํ๊ธฐ ์ํด์ java.util.Stack ํด๋์ค๋ฅผ import ํ๋ค.
- Stack ์ฌ์ฉ๋ฒ
// Stack์ ์์ ์ฝ์
Stack<Number> stack = new Stack<>();
stack.push(1);
stack.push(2);
stack.push(3);
ํ์ด
- Stack์ ์ด์ฉํด์ ํธ๋ ๋ฌธ์
- ๊ดํธ๊ฐ (), (()), ()() ์ด๋ฐ์์ผ๋ก ์ง์ด ๋ง์ผ๋ฉด true, ์๋๋ฉด false
- ( -> ์คํ์ push, ) -> ์คํ์ pop ==> ์คํ์ด ๋น์ด์์ผ๋ฉด ๊ดํธ ์ง์ด ๋ง๋ ๊ฒ
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('(');
}else if(s.charAt(i)==')'){
if(stack.isEmpty()){ //์ง์ด ์๋ง๋์ํ์์ )๊ฐ ๋์ค๋ฉด false ๋ฆฌํดํจ
return false;
}
stack.pop();
}
}
//์คํ์ด ๋น์ด์์ผ๋ฉด ๊ดํธ์ง์ด ๋ง์
return stack.isEmpty();
}
}
'Algorithm > Programmers' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[LV2/JAVA] ํผ๋ณด๋์น ์ (2) | 2024.10.06 |
---|---|
[LV2/JAVA] ์ต์๊ฐ ๋ง๋ค๊ธฐ (0) | 2024.10.06 |
[LV2/JAVA] ์ต๋๊ฐ๊ณผ ์ต์๊ฐ (1) | 2024.10.02 |
[LV1/JAVA] 3์ง๋ฒ ๋ค์ง๊ธฐ (0) | 2024.09.30 |
[LV1/JAVA] ํ๋ ฌ์ ๋ง์ (0) | 2024.09.03 |