ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [๋ฐฑ์ค€(BOJ) 4949๋ฒˆ] ๊ท ํ˜•์žกํžŒ ์„ธ์ƒ (C++)
    PS(Problem Solving)/C++ 2022. 1. 20. 22:53
    ๋ฐ˜์‘ํ˜•

    ๋ฌธ์ œ ๋งํฌ

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

     

    ๋ฌธ์ œ ์ •๋ณด

    ์ž…๋ ฅ

    ํ•˜๋‚˜ ๋˜๋Š” ์—ฌ๋Ÿฌ์ค„์— ๊ฑธ์ณ์„œ ๋ฌธ์ž์—ด์ด ์ฃผ์–ด์ง„๋‹ค. ๊ฐ ๋ฌธ์ž์—ด์€ ์˜๋ฌธ ์•ŒํŒŒ๋ฒณ, ๊ณต๋ฐฑ, ์†Œ๊ด„ํ˜ธ("( )") ๋Œ€๊ด„ํ˜ธ("[ ]")๋“ฑ์œผ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ์œผ๋ฉฐ, ๊ธธ์ด๋Š” 100๊ธ€์ž๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™๋‹ค.

    ์ž…๋ ฅ์˜ ์ข…๋ฃŒ์กฐ๊ฑด์œผ๋กœ ๋งจ ๋งˆ์ง€๋ง‰์— ์  ํ•˜๋‚˜(".")๊ฐ€ ๋“ค์–ด์˜จ๋‹ค.

    ์ถœ๋ ฅ

    ๊ฐ ์ค„๋งˆ๋‹ค ํ•ด๋‹น ๋ฌธ์ž์—ด์ด ๊ท ํ˜•์„ ์ด๋ฃจ๊ณ  ์žˆ์œผ๋ฉด "yes"๋ฅผ, ์•„๋‹ˆ๋ฉด "no"๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.

     

    ํ’€์ด

     ์Šคํƒ์„ ํ™œ์šฉํ•˜์—ฌ ์ˆ˜์‹์˜ ๊ด„ํ˜ธ ์Œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐ ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ˆ˜์‹์˜ ๊ด„ํ˜ธ ์Œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ๋ธ”๋กœ๊ทธ ๋‚ด ๊ธ€์„ ํ†ตํ•ด ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. 

    - ์Šคํƒ์˜ ํ™œ์šฉ(์ˆ˜์‹์˜ ๊ด„ํ˜ธ ๊ฒ€์‚ฌ)

     

    ์†Œ์Šค ์ฝ”๋“œ

    #include <bits/stdc++.h>
    using namespace std;
    
    int main(void) {
    	ios::sync_with_stdio(0);
    	cin.tie(0);
    	
    	while (true) {
    		string str;
    		getline(cin, str);
    		
    		if (str == ".") {
    			break;
    		}
    		
    		stack<char> S;
    		bool isValid = true;
    		
    		for (auto c : str) {
    			if (c == '(' || c == '[') {
    				S.push(c);
    			} else if (c == ')') {
    				if (S.empty() || S.top() != '(') { // ์˜ฌ๋ฐ”๋ฅด์ง€ ์•Š์€ ๊ด„ํ˜ธ ์Œ
    					isValid = false;
    					break;
    				}
    				S.pop();
    			} else if (c == ']') {
    				if (S.empty() || S.top() != '[') { // ์˜ฌ๋ฐ”๋ฅด์ง€ ์•Š์€ ๊ด„ํ˜ธ ์Œ
    					isValid = false;
    					break;
    				}
    				S.pop();
    			}
    		}
    		
    		if (!S.empty()) { // ๋ชจ๋“  ๊ณผ์ •์„ ๋๋‚ธ ํ›„ ์Šคํƒ์— ๊ด„ํ˜ธ๊ฐ€ ๋‚จ์•„์žˆ์œผ๋ฉด ์˜ฌ๋ฐ”๋ฅด์ง€ ์•Š์Œ!
    			isValid = false;
    		}
    		
    		if (isValid) {
    			cout << "yes" << '\n';
    		} else {
    			cout << "no" << '\n';
    		}
    	}
    	
    	return 0;
    }

     

    ๋ฐ˜์‘ํ˜•
Designed by Tistory.