๊ด€๋ฆฌ ๋ฉ”๋‰ด

๐˜š๐˜ญ๐˜ฐ๐˜ธ ๐˜ฃ๐˜ถ๐˜ต ๐˜ด๐˜ต๐˜ฆ๐˜ข๐˜ฅ๐˜บ

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ์˜ฌ๋ฐ”๋ฅธ ๊ด„ํ˜ธ - C++ ๋ณธ๋ฌธ

์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์ค€๋น„/ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ์˜ฌ๋ฐ”๋ฅธ ๊ด„ํ˜ธ - C++

.23 2024. 4. 4. 17:55
๋ฌธ์ œ

๊ด„ํ˜ธ๊ฐ€ ๋ฐ”๋ฅด๊ฒŒ ์ง์ง€์–ด์กŒ๋‹ค๋Š” ๊ฒƒ์€ '(' ๋ฌธ์ž๋กœ ์—ด๋ ธ์œผ๋ฉด ๋ฐ˜๋“œ์‹œ ์ง์ง€์–ด์„œ ')' ๋ฌธ์ž๋กœ ๋‹ซํ˜€์•ผ ํ•œ๋‹ค๋Š” ๋œป์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด

 

  • "()()" ๋˜๋Š” "(())()" ๋Š” ์˜ฌ๋ฐ”๋ฅธ ๊ด„ํ˜ธ์ž…๋‹ˆ๋‹ค.
  • ")()(" ๋˜๋Š” "(()(" ๋Š” ์˜ฌ๋ฐ”๋ฅด์ง€ ์•Š์€ ๊ด„ํ˜ธ์ž…๋‹ˆ๋‹ค.

'(' ๋˜๋Š” ')' ๋กœ๋งŒ ์ด๋ฃจ์–ด์ง„ ๋ฌธ์ž์—ด s๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ๋ฌธ์ž์—ด s๊ฐ€ ์˜ฌ๋ฐ”๋ฅธ ๊ด„ํ˜ธ์ด๋ฉด true๋ฅผ return ํ•˜๊ณ , ์˜ฌ๋ฐ”๋ฅด์ง€ ์•Š์€ ๊ด„ํ˜ธ์ด๋ฉด false๋ฅผ return ํ•˜๋Š” solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด ์ฃผ์„ธ์š”.

 

์ œํ•œ์‚ฌํ•ญ
  • ๋ฌธ์ž์—ด s์˜ ๊ธธ์ด : 100,000 ์ดํ•˜์˜ ์ž์—ฐ์ˆ˜
  • ๋ฌธ์ž์—ด s๋Š” '(' ๋˜๋Š” ')' ๋กœ๋งŒ ์ด๋ฃจ์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค.

 

์ž…์ถœ๋ ฅ ์˜ˆ

 


๊ธฐ๋ณธ ์ž๋ฃŒ๊ตฌ์กฐ ๋ฌธ์ œ

์™œ ๋ ˆ๋ฒจ2์ง€?? STL ์“ฐ๋ฉด ๋์ด๋‹ค

 

์ž๋ฃŒ๊ตฌ์กฐ ์‹œ๊ฐ„์— ์Šคํƒ ๋ฐฐ์šธ ๋•Œ ๊ฐ€์žฅ ํ”ํ•˜๊ฒŒ ์˜ˆ์‹œ๋ฅผ ๋“œ๋Š” ๊ด„ํ˜ธ ๋ฌธ์ œ๋ฅผ ์‹ค์ œ๋กœ ๊ตฌํ˜„ํ•œ ๊ฒƒ.

'('๊ฐ€ ๋‚˜์˜ค๋ฉด push, ')'๊ฐ€ ๋‚˜์˜ค๋ฉด pop์„ ํ•˜์—ฌ ๋งˆ์ง€๋ง‰์— stack์ด ๋น„์–ด์žˆ์œผ๋ฉด true๋ฅผ, ๋น„์–ด์žˆ์ง€ ์•Š์œผ๋ฉด false๋ฅผ returnํ•œ๋‹ค.

์ด ๋•Œ ๋น„์–ด์žˆ๋Š” stack์— ์–ต์ง€๋กœ pop์„ ํ•  ๊ฒฝ์šฐ(ex. ")()(") ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์˜ฌ๋ฐ”๋ฅด์ง€ ์•Š์€ ๊ด„ํ˜ธ์ด๋ฏ€๋กœ, false๋ฅผ returnํ•œ๋‹ค.

 

๋ฌธ์ œ๋ฅผ C๋กœ๋„ ์งค ์ˆ˜ ์žˆ์–ด ๊ด„ํ˜ธ๊ฐ€ ๋“ค์–ด์˜ฌ ๋•Œ ๋งˆ๋‹ค count๋ฅผ ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ํ•˜๋ ค ํ–ˆ๋Š”๋ฐ ๊ท€์ฐฎ์•„์„œ ๊ทธ๋ƒฅ C++๋กœ ํ’€์—ˆ๋‹ค..

 

์ฝ”๋“œ
#include<string>
#include <iostream>
#include <stack>

using namespace std;

bool solution(string s)
{
    int count = 0;

    stack<char> test;

    for(int i = 0; i < s.length(); i++) {
        if(s[i] == '(') {
            test.push(s[i]);
        }
        else {
            if(test.empty()) {
                return false;
            }
            else test.pop();
        }
    }

    return test.empty();
}
Comments