Algorithm

๋ฐฑ์ค€ 9012 With Stack of JAVA

hyunjun's developing ๐Ÿฃ 2024. 2. 1. 12:25

 

 


 

 

https://www.acmicpc.net/problem/9012

 

9012๋ฒˆ: ๊ด„ํ˜ธ

๊ด„ํ˜ธ ๋ฌธ์ž์—ด(Parenthesis String, PS)์€ ๋‘ ๊ฐœ์˜ ๊ด„ํ˜ธ ๊ธฐํ˜ธ์ธ ‘(’ ์™€ ‘)’ ๋งŒ์œผ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋Š” ๋ฌธ์ž์—ด์ด๋‹ค. ๊ทธ ์ค‘์—์„œ ๊ด„ํ˜ธ์˜ ๋ชจ์–‘์ด ๋ฐ”๋ฅด๊ฒŒ ๊ตฌ์„ฑ๋œ ๋ฌธ์ž์—ด์„ ์˜ฌ๋ฐ”๋ฅธ ๊ด„ํ˜ธ ๋ฌธ์ž์—ด(Valid PS, VPS)์ด๋ผ๊ณ 

www.acmicpc.net

 

 


 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
import java.util.Scanner;
import java.util.Stack;
 
public class Main {
 
    public static void main(String[] args) {
 
        Scanner in = new Scanner(System.in);
        
        int T = in.nextInt();
        
        for(int i = 0; i < T; i++) {
            System.out.println(solve(in.next()));    
        }
    }
 
    public static String solve(String s) {
 
        Stack<Character> stack = new Stack<>();
 
        for (int i = 0; i < s.length(); i++) {
 
            char c = s.charAt(i);
 
            
            if (c == '(') {
                stack.push(c);
            }
 
            .
 
            
            else if (stack.empty()) {
                return "NO";
            }
            
            else {
                stack.pop();
            }
        }
 
        
 
        if (stack.empty()) {
            return "YES";
        } 
        else {
            return "NO";
        }
    }
}
cs

 

 


 

์ด ๋ฌธ์ œ๋Š” ์Šคํƒ์„ ์ด์šฉํ•œ ๋ฌธ์ œ์ด๋‹ค. ํ’€์ด๋ฅผ ํ•ด๋ณด์ž๋ฉด 

 

๋จผ์ € ์Šค์บ๋„ˆ๋ฅผ ํ†ตํ•ด ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ช‡ ์ค„์„ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋กœ ๋งŒ๋“ค ๊ฑด์ง€ ์ž…๋ ฅ์„ ๋ฐ›๋Š”๋‹ค.

 

๊ทธ ๋‹ค์Œ for๋ฌธ์„ ํ†ตํ•ด ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค ๊ฐฏ์ˆ˜๋งŒํผ ๋ฐ˜๋ณต์„ ํ•œ๋‹ค. ๋ฐ˜๋ณต๋ฌธ์— ํฌํ•จ๋œ ๋‚ด์šฉ์€ solveํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœ ํ›„, ์ถœ๋ ฅํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

 

solve ํ•จ์ˆ˜์˜ ๋‚ด์šฉ์€ ๋จผ์ € ์Šคํƒ์„ ํ•˜๋‚˜ ๋งŒ๋“ค์–ด์ฃผ๊ณ  for๋ฌธ์—์„œ ์ž…๋ ฅ๋ฐ›์€ ๋ฌธ์ž์—ด์˜ ๊ธธ์ด๋งŒํผ ๋ฐ˜๋ณตํ•œ๋‹ค.

 

๊ทธ ๋‹ค์Œ i๋กœ ๋ฌธ์ž์—ด์˜ ๊ฐ๊ฐ์˜ ๊ด„ํ˜ธ๋“ค์„ ๊ฒ€์‚ฌํ•œ๋‹ค. '('์ด๋ฉด pushํ•˜๊ณ  ')'์ด๋ฉด pop์„ ํ•˜๋ฉด ๋œ๋‹ค.

 

 

')'์ผ ๋•Œ popํ•  ์›์†Œ๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ , ์ฆ‰ ์Šคํƒ์ด ๋น„์–ด์žˆ์œผ๋ฉด ๊ด„ํ˜ธ์˜ ๊ท ํ˜•์ด ๋งž์ง€ ์•Š๋Š” ๊ฒƒ์ด๊ธฐ์— NO๋ฅผ ๋ฆฌํ„ดํ•˜๊ณ 

 

๊ทธ ์™ธ์˜ ๊ฒฝ์šฐ๋Š” ํŒ์„ ํ•ด์ฃผ๋ฉด ๋œ๋‹ค.

 

๋ชจ๋“  ๊ฒ€์‚ฌ๋ฅผ ๋งˆ์นœ ์ƒํƒœ์—์„œ ์™„์ „ํ•œ ๊ด„ํ˜ธ๋ผ๋ฉด ์Šคํƒ์— ์•„๋ฌด ๊ฒƒ๋„ ์—†์–ด์•ผ ํ•œ๋‹ค. ๊ทธ ์กฐ๊ฑด์ด ๋งŒ์กฑ์ด ๋˜๋ฉด yes, ์—†์œผ๋ฉด NO๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.

 


 

https://st-lab.tistory.com/178

 

[๋ฐฑ์ค€] 9012๋ฒˆ : ๊ด„ํ˜ธ - JAVA [์ž๋ฐ”]

www.acmicpc.net/problem/9012 9012๋ฒˆ: ๊ด„ํ˜ธ ๊ด„ํ˜ธ ๋ฌธ์ž์—ด(Parenthesis String, PS)์€ ๋‘ ๊ฐœ์˜ ๊ด„ํ˜ธ ๊ธฐํ˜ธ์ธ ‘(’ ์™€ ‘)’ ๋งŒ์œผ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋Š” ๋ฌธ์ž์—ด์ด๋‹ค. ๊ทธ ์ค‘์—์„œ ๊ด„ํ˜ธ์˜ ๋ชจ์–‘์ด ๋ฐ”๋ฅด๊ฒŒ ๊ตฌ์„ฑ๋œ ๋ฌธ์ž์—ด์„ ์˜ฌ

st-lab.tistory.com

์ฐธ๊ณ  ๋ธ”๋กœ๊ทธ