Amenable
Amenable's Blog
Amenable
  • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (189)
    • ๐Ÿ“‚ JAVA (87)
      • ์ดํŽ™ํ‹ฐ๋ธŒ ์ž๋ฐ” (65)
      • ์ฃผ์š” ๊ฐœ๋… (22)
    • ๐Ÿ“‚ ๊ฐœ๋ฐœ ์„œ์  (22)
      • ์‹ค์šฉ์ฃผ์˜ ํ”„๋กœ๊ทธ๋ž˜๋จธ (1)
      • ๊ฐ์ฒด์ง€ํ–ฅ์˜ ์‚ฌ์‹ค๊ณผ ์˜คํ•ด (2)
      • ํด๋ฆฐ ์ฝ”๋“œ (8)
      • ํ•จ๊ป˜ ์ž๋ผ๊ธฐ (1)
      • ๊ทธ๋ฆผ์œผ๋กœ ๋ฐฐ์šฐ๋Š” HTTP&Network Basic (10)
    • ๐Ÿ“‚ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค (8)
      • ๊ฐœ๋… (8)
      • ๋ฌธ์ œํ’€์ด (0)
    • ๐Ÿ“‚ ๋„คํŠธ์›Œํฌ (14)
      • ๊ฐœ๋… (6)
      • ์„ฑ๊ณต๊ณผ ์‹คํŒจ๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” 1%์˜ ๋„คํŠธ์›Œํฌ ์›๋ฆฌ (8)
    • ๐Ÿ“‚ ์Šคํ”„๋ง (13)
      • ๊ธฐ๋ณธ ๊ฐœ๋… (13)
    • ๐Ÿ“‚ WEB (5)
    • ๐Ÿ“‚ ์ž๋ฃŒ๊ตฌ์กฐ (12)
      • ๊ฐœ๋… (2)
      • ์ •๋ ฌ (8)
      • ํŠธ๋ฆฌ (2)
    • ๐Ÿ“‚ ์•Œ๊ณ ๋ฆฌ์ฆ˜ (10)
      • ์ตœ์†Œ์‹ ์žฅํŠธ๋ฆฌ (2)
      • ์ตœ๋‹จ ๊ฒฝ๋กœ (2)
      • ๋ฌธ์ž์—ด (2)
      • ETC (4)
    • ๐Ÿ“‚ ์•Œ๊ณ ๋ฆฌ์ฆ˜_๋ฌธ์ œํ’€์ด (4)
      • BOJ_๋ฐฑ์ค€ (4)
    • ๐Ÿ“‚ ํ”„๋กœ๊ทธ๋ž˜๋ฐ (3)
    • ๐Ÿ“‚ DevOps (2)
      • ๋ฐฐํฌ (2)
    • ๐Ÿ“‚ ํ›„๊ธฐ (8)
      • ์šฐ์•„ํ•œ ํ…Œํฌ์ฝ”์Šค(ํ”„๋ฆฌ์ฝ”์Šค) (4)
      • 2023๋…„ (3)
      • 2024๋…„ (1)
    • ๐Ÿ“‚ ํšŒ๊ณ  (1)
      • 2023๋…„ (1)

๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

  • ๐Ÿš€ GitHub

ํ‹ฐ์Šคํ† ๋ฆฌ

hELLO ยท Designed By ์ •์ƒ์šฐ.
Amenable

Amenable's Blog

[๋ฐฑ์ค€ BOJ / JAVA] ๊ด„ํ˜ธ์˜ ๊ฐ’ (2504๋ฒˆ)
๐Ÿ“‚ ์•Œ๊ณ ๋ฆฌ์ฆ˜_๋ฌธ์ œํ’€์ด/BOJ_๋ฐฑ์ค€

[๋ฐฑ์ค€ BOJ / JAVA] ๊ด„ํ˜ธ์˜ ๊ฐ’ (2504๋ฒˆ)

2023. 12. 26. 13:43

๐Ÿ“˜ 1. ๋ฌธ์ œ ์†Œ๊ฐœ

 

2504๋ฒˆ: ๊ด„ํ˜ธ์˜ ๊ฐ’

4๊ฐœ์˜ ๊ธฐํ˜ธ ‘(’, ‘)’, ‘[’, ‘]’๋ฅผ ์ด์šฉํ•ด์„œ ๋งŒ๋“ค์–ด์ง€๋Š” ๊ด„ํ˜ธ์—ด ์ค‘์—์„œ ์˜ฌ๋ฐ”๋ฅธ ๊ด„ํ˜ธ์—ด์ด๋ž€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ •์˜๋œ๋‹ค. ํ•œ ์Œ์˜ ๊ด„ํ˜ธ๋กœ๋งŒ ์ด๋ฃจ์–ด์ง„ ‘()’์™€ ‘[]’๋Š” ์˜ฌ๋ฐ”๋ฅธ ๊ด„ํ˜ธ์—ด์ด๋‹ค. ๋งŒ์ผ X

www.acmicpc.net

 

๐Ÿ“˜ 2. ํ’€์ด

  ํ•ด๋‹น ๋ฌธ์ œ๋Š” ์ผ๋ฐ˜์ ์ธ ์Šคํƒ ๋ฌธ์ œ์— ๊ฐ’์„ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ๊ฐ€ ๋”ํ•ด์ง„ ๋ฌธ์ œ๋‹ค. ๊ด„ํ˜ธ๋ฅผ ์ด์šฉํ•œ ์ผ๋ฐ˜์ ์ธ ์Šคํƒ ๋ฌธ์ œ์— ๋Œ€ํ•œ ์„ค๋ช…์€ ์•„๋ž˜ ๋ฌธ์ œ๋ฅผ ์ฐธ๊ณ ํ•˜๋„๋ก ํ•˜์ž.

 

9012๋ฒˆ: ๊ด„ํ˜ธ

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

www.acmicpc.net

 

  ์ด์ œ๋ถ€ํ„ฐ ๊ด„ํ˜ธ๋“ค์„ ์ด์šฉํ•œ ๊ณ„์‚ฐ์„ ํ†ตํ•ด ์–ด๋–ป๊ฒŒ ๊ฐ’์„ ๊ตฌํ•˜๋Š”์ง€ ์ƒ๊ฐํ•ด ๋ณด์ž.

  ์ฃผ์–ด์ง„ ์˜ˆ์ œ์ธ ( ( ) [ [ ] ] ) ( [ ] )๋ฅผ ์‚ดํŽด๋ณด์ž. ์ผ๋ฐ˜์ ์œผ๋กœ ๊ณ„์‚ฐ์„ ํ•œ๋‹ค๊ณ  ํ•˜๋ฉด, 2 x (2 + (3 x 3)) + (2 x 3) = 28๋กœ ๊ณ„์‚ฐํ•  ์ˆ˜ ์žˆ๋‹ค. ์—ฌ๊ธฐ์„œ ๋ฌธ์ œ๋Š” ์–ธ์ œ ๋”ํ•ด์ฃผ๊ณ (+) ์–ธ์ œ ๊ณฑํ•ด์ฃผ์–ด์•ผ(x) ํ•˜๋Š”์ง€๋ฅผ ์ •ํ™•ํžˆ ๋‚˜๋ˆŒ ์ˆ˜ ์—†๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ('๊ณฑํ•˜๊ธฐ ์•ˆ์— ๋”ํ•˜๊ธฐ'๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๊ณ  '๋”ํ•˜๊ธฐ ์•ˆ์— ๊ณฑํ•˜๊ธฐ'๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์–ด์„œ ๊ณ„์‚ฐ์ด ๋ณต์žกํ•˜๋‹ค.)

 

  ( ( ) [ [ ] ] ) ( [ ] )๋ฅผ ๋‹ค์‹œ ํ•œ๋ฒˆ ์‚ดํŽด๋ณด์ž.

  ๊ฐ’์„ ์œ„์™€ ๊ฐ™์ด 2 x (2 + (3 x 3)) + (2 x 3) = 28๋กœ ํ‘œ์‹œํ•  ์ˆ˜๋„ ์žˆ๊ฒ ์ง€๋งŒ, (2 x 2) + (2 x 3 x 3) + (2 x 3) = 28๋กœ ํ‘œ์‹œํ•  ์ˆ˜๋„ ์žˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ‘œ์‹œํ•˜๋ฉด ๋”ํ•˜๊ธฐ(+)์™€ ๊ณฑํ•˜๊ธฐ(x)๊ฐ€ ์ •ํ™•ํžˆ ๋ถ„๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ณฑํ•˜๊ธฐ๋ฅผ ์ด์šฉํ•œ ์‹ ์•ˆ์— ๋”ํ•˜๊ธฐ๊ฐ€ ์—†๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ๊ณฑํ•˜๊ธฐ๋ฅผ ์ด์šฉํ•ด์„œ ๊ฐ’์ด ๊ตฌํ•ด์ง„ ์ƒํƒœ์—์„œ ๋”ํ•˜๊ธฐ๋ฅผ ์ด์šฉํ•˜์—ฌ ๊ฐ’์„ ๋”ํ•˜๊ณ  ์ด๋ฅผ ๋ฐ˜๋ณตํ•˜๋ฉด ๋œ๋‹ค.

 

  ๊ทธ๋ ‡๋‹ค๋ฉด ์–ธ์ œ ๊ณฑํ•˜๊ธฐ(x)๋ฅผ ํ•˜๊ณ  ์–ธ์ œ ๋”ํ•˜๊ธฐ(+)๋ฅผ ํ•ด์•ผ ํ• ๊นŒ?

  ๊ณฑํ•˜๊ธฐ๋Š” ๊ด„ํ˜ธ๊ฐ€ ์—ด๋ฆด ๋•Œ ํ•ด์ฃผ๊ณ  ๋”ํ•˜๊ธฐ๋Š” ์ง์ „ ๊ด„ํ˜ธ์™€ ์ง์„ ์ด๋ฃฐ ๋•Œ ํ•ด์ฃผ๋ฉด ๋œ๋‹ค.

์˜ˆ์ œ : ( ( ) [ [ ] ] ) ( [ ] )

( ( ) )    
x2 x2 +      
( [ [ ] ] )
x2 x3 x3 +    
( [ ] )    
x2 x3 +      

  ์ด๋ ‡๊ฒŒ ํ‘œํ˜„ํ•˜๋ฉด ( ( ) [ [ ] ] ) ( [ ] )๋ฅผ (2 x 2) + (2 x 3 x 3) + (2 x 3) = 28๋ผ๊ณ  ๊ณ„์‚ฐํ•  ์ˆ˜ ์žˆ๋‹ค.

 

  ์ด๋ฅผ ๊ฐ„๋‹จํ•˜๊ฒŒ ์‹์œผ๋กœ ํ‘œํ˜„ํ•˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

  • ์ „์ฒด ๊ฐ’ = totalScore
  • ๊ณฑํ•˜๊ธฐ๋ฅผ ์ด์šฉํ•œ ํ•˜๋‚˜์˜ ๊ฐ’ = score
  1. (
    score = score x 2
  2. [
    score = score x 3
  3. )
    ์ง์ „ ๊ด„ํ˜ธ์™€ ์ง์„ ์ด๋ฃจ๋Š” ๊ฒฝ์šฐ
    → totalScore = totalScore + score
    → score = score / 2
    ์ง์ „ ๊ด„ํ˜ธ์™€ ์ง์„ ์ด๋ฃจ์ง€ ๋ชปํ•˜๋Š” ๊ฒฝ์šฐ
    → score = score / 2
  4. ]
    ์ง์ „ ๊ด„ํ˜ธ์™€ ์ง์„ ์ด๋ฃจ๋Š” ๊ฒฝ์šฐ
    → totalScore = totalScore + score
    → score = score / 3
    ์ง์ „ ๊ด„ํ˜ธ์™€ ์ง์„ ์ด๋ฃจ์ง€ ๋ชปํ•˜๋Š” ๊ฒฝ์šฐ
    → score = score / 3

 

๐Ÿ“˜ 3. ์ฝ”๋“œ

public class Main {

    static String s;
    static boolean isValid = true;
    static int totalScore, score = 1;

    public static void main(String[] args) throws Exception {
        BufferedReader in = new BufferedReader(new InputStreamReader(System.in));

        s = in.readLine();
        Stack<Character> stk = new Stack<>();
        for(int i = 0; i < s.length(); i++) {
            char c = s.charAt(i);

            switch (c) {
                case '(':
                    score *= 2;
                    stk.add(c);
                    break;

                case '[':
                    score *= 3;
                    stk.add(c);
                    break;

                case ')':
                    if(stk.isEmpty() || stk.peek() != '(') {
                        isValid = false;
                        break;
                    }

                    if(s.charAt(i-1) == '(') {
                        totalScore += score;
                        score /= 2;
                    }
                    else {
                        score /= 2;
                    }

                    stk.pop();
                    break;
                    
                case ']':
                    if(stk.isEmpty() || stk.peek() != '[') {
                        isValid = false;
                        break;
                    }

                    if(s.charAt(i-1) == '[') {
                        totalScore += score;
                        score /= 3;
                    }
                    else {
                        score /= 3;
                    }

                    stk.pop();
                    break;
            }

            if(!isValid)
                break;
        }

        if (isValid && stk.isEmpty()) {
            System.out.println(totalScore);
        }
        else {
            System.out.println(0);
        }
    }
}

 

'๐Ÿ“‚ ์•Œ๊ณ ๋ฆฌ์ฆ˜_๋ฌธ์ œํ’€์ด > BOJ_๋ฐฑ์ค€' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[๋ฐฑ์ค€ BOJ / JAVA] ๋‘ ๋ฐฐ์—ด์˜ ํ•ฉ (2143๋ฒˆ)  (1) 2023.12.29
[๋ฐฑ์ค€ BOJ / JAVA] ๋ฉ€ํ‹ฐ๋ฒ„์Šค โ…ก (18869๋ฒˆ)  (1) 2023.12.27
BOJ 14865 - ๊ณก์„  ์ž๋ฅด๊ธฐ [JAVA]  (0) 2023.02.28
    '๐Ÿ“‚ ์•Œ๊ณ ๋ฆฌ์ฆ˜_๋ฌธ์ œํ’€์ด/BOJ_๋ฐฑ์ค€' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
    • [๋ฐฑ์ค€ BOJ / JAVA] ๋‘ ๋ฐฐ์—ด์˜ ํ•ฉ (2143๋ฒˆ)
    • [๋ฐฑ์ค€ BOJ / JAVA] ๋ฉ€ํ‹ฐ๋ฒ„์Šค โ…ก (18869๋ฒˆ)
    • BOJ 14865 - ๊ณก์„  ์ž๋ฅด๊ธฐ [JAVA]
    Amenable
    Amenable
    CS, ์ž๋ฐ”, ์ž๋ฃŒ๊ตฌ์กฐ, ์•Œ๊ณ ๋ฆฌ์ฆ˜, ์Šคํ”„๋ง, ์Šคํ”„๋ง ๋ถ€ํŠธ์— ํ•ด๋‹นํ•˜๋Š” ๊ฐœ๋ฐœ์— ๊ด€ํ•œ ๋‚ด์šฉ์„ ๊ณต์œ ํ•ฉ๋‹ˆ๋‹ค.

    ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”