Hamutaro - Hamtaro 4

Algorithm/Programmers

[LV2/JAVA] ์˜ฌ๋ฐ”๋ฅธ ๊ด„ํ˜ธ

carsumin 2024. 10. 3. 19:48

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(); 
    }
}