ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [๋ฐฑ์ค€(BOJ) 10799๋ฒˆ] ์‡ ๋ง‰๋Œ€๊ธฐ (C++)
    PS(Problem Solving)/C++ 2022. 1. 20. 23:39
    ๋ฐ˜์‘ํ˜•

    ๋ฌธ์ œ ๋งํฌ

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

     

    ๋ฌธ์ œ ์ •๋ณด

    ์ž…๋ ฅ

    ํ•œ ์ค„์— ์‡ ๋ง‰๋Œ€๊ธฐ์™€ ๋ ˆ์ด์ €์˜ ๋ฐฐ์น˜๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๊ด„ํ˜ธ ํ‘œํ˜„์ด ๊ณต๋ฐฑ์—†์ด ์ฃผ์–ด์ง„๋‹ค. ๊ด„ํ˜ธ ๋ฌธ์ž์˜ ๊ฐœ์ˆ˜๋Š” ์ตœ๋Œ€ 100,000์ด๋‹ค. 

    ์ถœ๋ ฅ

    ์ž˜๋ ค์ง„ ์กฐ๊ฐ์˜ ์ด ๊ฐœ์ˆ˜๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์ •์ˆ˜๋ฅผ ํ•œ ์ค„์— ์ถœ๋ ฅํ•œ๋‹ค.

     

    ํ’€์ด

     ์ƒ๊ฐ์ด ์–ด๋ ค์› ๊ณ  ๊ตฌํ˜„์€ ์‰ฌ์› ๋˜ ๋ฌธ์ œ์˜€๋‹ค. ์—ฌ๋Š” ๊ด„ํ˜ธ๋Š” ์Šคํƒ์— push ํ•ด์ฃผ๊ณ  ๋‹ซ๋Š” ๊ด„ํ˜ธ์ผ ๋•Œ ๋ฐ”๋กœ ์•ž์— ๊ด„ํ˜ธ๊ฐ€ ์—ฌ๋Š” ๊ด„ํ˜ธ์ธ์ง€, ๋‹ซ๋Š” ๊ด„ํ˜ธ์ธ์ง€๋ฅผ ํ†ตํ•ด ๋ ˆ์ด์ €์™€ ์‡  ๋ง‰๋Œ€๊ธฐ์˜ ๋์„ ๊ตฌ๋ณ„ํ•˜๋ฉด ๋œ๋‹ค.

     

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

    #include <bits/stdc++.h>
    using namespace std;
    
    int main(void) {
    	ios::sync_with_stdio(0);
    	cin.tie(0);
    	
    	string str;
    	cin >> str;
    	
    	stack<char> S;
    	
    	int ans = 0;
    	for (int i = 0; i < str.length(); i++) {
    		if (str[i] == '(') { // ์—ฌ๋Š” ๊ด„ํ˜ธ
    			S.push(str[i]);
    		} else { // ๋‹ซ๋Š” ๊ด„ํ˜ธ
    			if (str[i - 1] == '(') { // ๋ ˆ์ด์ €์ผ ๊ฒฝ์šฐ
    				S.pop(); // ์‡  ๋ง‰๋Œ€๊ธฐ๋กœ ์ฐฉ๊ฐํ•˜๊ณ  ์•ž์—์„œ ์Šคํƒ์— ์—ฌ๋Š” ๊ด„ํ˜ธ๋ฅผ ํ•˜๋‚˜ ์ถ”๊ฐ€ํ–ˆ์œผ๋ฏ€๋กœ pop ํ•œ๋‹ค.
    				ans += S.size(); // ์‡  ๋ง‰๋Œ€๊ธฐ์˜ ๊ฐœ์ˆ˜๋งŒํผ ์กฐ๊ฐ์ด ์ž˜๋ฆฐ๋‹ค. 
    			} else { // ์‡  ๋ง‰๋Œ€๊ธฐ์˜ ๋์ผ ๊ฒฝ์šฐ
    				S.pop(); // ๋ง‰๋Œ€๊ฐ€ ๋๋‚ฌ์œผ๋ฏ€๋กœ ๋ง‰๋Œ€๊ธฐ ํ•˜๋‚˜ ์ œ๊ฑฐ(์—ฌ๋Š” ๊ด„ํ˜ธ ์ œ๊ฑฐ)
    				ans++; // ์‡  ๋ง‰๋Œ€๊ธฐ์˜ ๋(์˜ค๋ฅธ์ชฝ) ์กฐ๊ฐ์„ ๋”ํ•ด์ค€๋‹ค.
    			}
    		}
    	}
    	
    	cout << ans;
    	
    	return 0;
    }

     

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