Notice
Recent Posts
Recent Comments
- Today
- Total
01-25 23:16
Tags
- ์ธํด
- ์์์ ๋ ฌ
- pytorch
- ์๋ฐ
- OOP
- ๊ตฌํ
- java
- Graph
- MST
- ์๋ฃ๊ตฌ์กฐ
- array
- ์๋ฐ์์ ์
- leetcode
- Algorithm
- CS
- ํ๋ก๊ทธ๋๋จธ์ค
- database
- dp
- ๋ฐ์ดํฐ๋ฒ ์ด์ค
- ๋ค์ต์คํธ๋ผ
- PS
- ๋ฌธ๋ฒ
- ๋ฒจ๋งํฌ๋
- spring
- BFS
- ๋ฐฑ์๋
- tree
- ๋ฐฑ์ค
- ๊ทธ๋ฆฌ๋
- ์กธ์ ์ํ
Link
Partially Committed
[2020 KAKAO BLIND RECRUITMENT] ๊ดํธ ๋ณํ ๋ณธ๋ฌธ
๐ฅ Algorithm || ๋ฌธ์ ํ์ด/PS
[2020 KAKAO BLIND RECRUITMENT] ๊ดํธ ๋ณํ
WonderJay 2022. 7. 8. 12:45728x90
๋ฐ์ํ
SMALL
https://school.programmers.co.kr/learn/courses/30/lessons/60058
๋ซํ ๊ดํธ, ์ด๋ฆฐ ๊ดํธ๋ก ์ด๋ฃจ์ด์ง ๋ฌธ์์ด์ด ์ฃผ์ด์ก์ ๋ ์ฌ๋ฐ๋ฅธ ๊ดํธ ๋ฌธ์์ด๋ก ์ฌ๊ท์ ์ผ๋ก ๋ฐ๊พธ๋ ํจ์๋ฅผ ์์ฑํ๋ฉด ๋๋ค. ๋ฌธ์ ์์ ์๊ณ ๋ฆฌ์ฆ์ ์๋ ์ฝ๋๋ฅผ ์ ๊ณตํด์ฃผ๊ธฐ ๋๋ฌธ์, ๊ทธ๋๋ก ๊ตฌํ๋ง ํ๋ฉด ๋๋ค!
[C++]
#include <string>
#include <vector>
#include <stack>
#include <algorithm>
#include <iostream>
using namespace std;
bool isitbalanced(string p)
{
int left= 0; int right = 0;
for(auto & ele : p)
{
if(ele == '(') left ++;
if(ele == ')') right ++;
}
return left == right ? true : false; // ๊ท ํ์กํ ๋ฌธ์์ด์ธ์ง ์๋์ง
}
bool isitcorrect(string p)
{
stack<char> st;
st.push(p[0]);
for(int i = 1 ; i < p.size(); i ++){
char ele = p[i];
if(st.top() == '(' && ele == ')')
{
st.pop();
continue;
}
if(st.top() == '(' && ele == '(')
{
st.push(ele);
continue;
}
if(st.top() == ')' && ele == '(')
{
st.push(ele);
continue;
}
if(st.top() == ')' && ele == ')')
{
st.push(ele);
continue;
}
}
if(st.empty())
{
return true; // ์ฌ๋ฐ๋ฅธ ๋ฌธ์์ด์ด๋ฉด true
}
else
{
while(!st.empty()) st.pop(); // ์คํ์ด ๋น๋๊น์ง ํํ
return false;
}
}
string tfm(string p, string u = "", string v = ""){
if(p.empty()) return p; // ์
๋ ฅ์ด ๋น ๋ฌธ์์ด์ธ ๊ฒฝ์ฐ, ๋น ๋ฌธ์์ด์ ๋ฐํํฉ๋๋ค.
// to do : p ๋ฅผ ์ฌ๋ฐ๋ฅด๊ฒ ๋ง๋ค๊ธฐ
for(int i = 0 ; i < p.size(); i ++) // ๋ฌธ์์ด w๋ฅผ ๋ "๊ท ํ์กํ ๊ดํธ ๋ฌธ์์ด" u, v๋ก ๋ถ๋ฆฌํฉ๋๋ค.
{
u.push_back(p[i]);
if(isitbalanced(u))
{
v = p.substr(i+1);
break;
}
}
if(isitcorrect(u))
{
u += tfm(v);
return u;
}
else
{
string temp = "("; // ๋น ๋ฌธ์์ด์ ์ฒซ ๋ฒ์งธ ๋ฌธ์๋ก '('๋ฅผ ๋ถ์
๋๋ค.
temp += tfm(v); // ๋ฌธ์์ด v์ ๋ํด 1๋จ๊ณ๋ถํฐ ์ฌ๊ท์ ์ผ๋ก ์ํํ ๊ฒฐ๊ณผ ๋ฌธ์์ด์ ์ด์ด ๋ถ์
๋๋ค.
temp.push_back(')'); // ')'๋ฅผ ๋ค์ ๋ถ์
๋๋ค.
u.erase(u.begin()); u.erase(u.end()-1); //u์ ์ฒซ ๋ฒ์งธ์ ๋ง์ง๋ง ๋ฌธ์๋ฅผ ์ ๊ฑฐํ๊ณ ,
//๋๋จธ์ง ๋ฌธ์์ด์ ๊ดํธ ๋ฐฉํฅ์ ๋ค์ง์ด์
string temp_u = "";
for(auto & ele : u)
{
if(ele == '(')
{
temp_u.push_back(')');
}
if(ele == ')')
{
temp_u.push_back('(');
}
}
temp += temp_u;
return temp;
}
}
string solution(string p) {
string answer = "";
answer = tfm(p);
return answer;
}
728x90
๋ฐ์ํ
LIST
'๐ฅ Algorithm || ๋ฌธ์ ํ์ด > PS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค] ๋ ๋งต๊ฒ (0) | 2022.07.11 |
---|---|
[ํ๋ก๊ทธ๋๋จธ์ค] ์ ํ๋ฒํธ ๋ชฉ๋ก (0) | 2022.07.08 |
[2019 KAKAO BLIND RECRUITMENT] ์คํ์ฑํ ๋ฐฉ (0) | 2022.07.07 |
[ํ๋ก๊ทธ๋๋จธ์ค] ์ด์ํ ๋ฌธ์ ๋ง๋ค๊ธฐ (0) | 2022.07.06 |
[ํ๋ก๊ทธ๋๋จธ์ค] ์์ ์ฐพ๊ธฐ (0) | 2022.07.06 |
Comments