#include<string>
#include <iostream>
#include<stack>
using namespace std;
bool solution(string s)
{
bool answer = true;
stack<char>myStack;
for (int i = 0; i < s.length(); i++) {
if (s[i] == '(')myStack.push(s[i]);
else if (!myStack.empty() && s[i] == ')')myStack.pop();
else { answer = false; break; }
}
if (!myStack.empty())answer = false;
return answer;
}
Stack 라이브러리 안쓰고 내가 stack짜서 쓰면 시간초과남.
시간초과난 코드:
#include<string>
#include <iostream>
using namespace std;
class Node {
public:
char data;
Node* next;
Node(char e) {
this->data = e;
this->next = NULL;
}
};
class Stack {
private:
Node* top;
int size;
public:
Stack() {
top = NULL;
size = 0;
}
bool empty() {
return(size == 0);
}
void push(char X) {
Node* newNode = new Node(X);
if (size == 0) {
top = newNode;
}
else {
newNode->next = top;
top = newNode;
}
size++;
}
void pop() {
if (!empty()) {
Node* temp = top;
top = top->next;
delete temp;
size--;
}
}
};
bool solution(string s)
{
bool answer = true;
stack<char>myStack;
for (int i = 0; i < s.length(); i++) {
if (s[i] == '(')myStack.push(s[i]);
else if (!myStack.empty() && s[i] == ')')myStack.pop();
else { answer = false; break; }
}
if (!myStack.empty())answer = false;
return answer;
}
#include <vector>
#include <iostream>
using namespace std;
vector<int> solution(vector<int> arr)
{
vector<int> answer;
answer.push_back(arr[0]);
for (int i = 1; i < arr.size(); i++) {
if (arr[i - 1] != arr[i])answer.push_back(arr[i]);
}
return answer;
}