https://school.programmers.co.kr/learn/courses/30/lessons/12909
๋ฌธ์ ์ค๋ช
๊ดํธ๊ฐ ๋ฐ๋ฅด๊ฒ ์ง์ง์ด์ก๋ค๋ ๊ฒ์ '(' ๋ฌธ์๋ก ์ด๋ ธ์ผ๋ฉด ๋ฐ๋์ ์ง์ง์ด์ ')' ๋ฌธ์๋ก ๋ซํ์ผ ํ๋ค๋ ๋ป์ ๋๋ค. ์๋ฅผ ๋ค์ด
- "()()" ๋๋ "(())()" ๋ ์ฌ๋ฐ๋ฅธ ๊ดํธ์ ๋๋ค.
- ")()(" ๋๋ "(()(" ๋ ์ฌ๋ฐ๋ฅด์ง ์์ ๊ดํธ์ ๋๋ค.
'(' ๋๋ ')' ๋ก๋ง ์ด๋ฃจ์ด์ง ๋ฌธ์์ด s๊ฐ ์ฃผ์ด์ก์ ๋, ๋ฌธ์์ด s๊ฐ ์ฌ๋ฐ๋ฅธ ๊ดํธ์ด๋ฉด true๋ฅผ return ํ๊ณ , ์ฌ๋ฐ๋ฅด์ง ์์ ๊ดํธ์ด๋ฉด false๋ฅผ return ํ๋ solution ํจ์๋ฅผ ์์ฑํด ์ฃผ์ธ์.
์ ํ์ฌํญ
- ๋ฌธ์์ด s์ ๊ธธ์ด : 100,000 ์ดํ์ ์์ฐ์
- ๋ฌธ์์ด s๋ '(' ๋๋ ')' ๋ก๋ง ์ด๋ฃจ์ด์ ธ ์์ต๋๋ค.
์ ์ถ๋ ฅ ์
s | answer |
"()()" | true |
"(())()" | true |
")()(" | false |
"(()(" | false |
์ ์ถ๋ ฅ ์ ์ค๋ช
์ ์ถ๋ ฅ ์ #1,2,3,4๋ฌธ์ ์ ์์์ ๊ฐ์ต๋๋ค.
๋ด ํด๋ต
#include <string>
#include <iostream>
#include <vector>
using namespace std;
bool solution(string s)
{
bool answer = true;
vector<char> vStack{};
for(int i = 0; i < s.size(); ++i)
{
char c = s[i];
if(c == ')')
{
if(!vStack.empty() && vStack.back() == '(')
{
vStack.pop_back();
continue;
}
}
vStack.push_back(c);
}
answer = vStack.empty();
return answer;
}
'๐ฅ๏ธ Study Note > Coding Test' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
programmers / level.2 / ์ซ์์ ํํ(C++) (0) | 2023.01.11 |
---|---|
programmers / level.2 / ์ด์ง ๋ณํ ๋ฐ๋ณตํ๊ธฐ(C++) (0) | 2023.01.11 |
programmers / level.2 / ์ต์๊ฐ ๋ง๋ค๊ธฐ(C++) (0) | 2023.01.11 |
programmers / level.2 / ์ฐ์ต๋ฌธ์ : JadenCase ๋ฌธ์์ด ๋ง๋ค๊ธฐ(C++) (0) | 2023.01.08 |
programmers / level.2 / ์ฐ์ต๋ฌธ์ : ์ต๋๊ฐ๊ณผ ์ต์๊ฐ (c++) (0) | 2023.01.06 |