[Coding] 프로그래머스 올바른 괄호, 같은 숫자는 싫어 C++

문채영·2023년 3월 31일
0

💻올바른 괄호

#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;
}

0개의 댓글