#include <string>
#include <vector>
#include <stack>
#include <iostream>
using namespace std;

int solution(string arrangement) {
    int answer = 0;
    string before;
    string now;
    stack<char>left;
    left.push(arrangement[0]);
    for(int i= 1 ; i < arrangement.length(); i++){
        before = arrangement[i-1];
        now = arrangement[i];
        if(before == ")" && now ==")"){
            left.pop();
            answer+=1;
            continue;
        }
        if(arrangement[i] == '(')
            left.push(arrangement[i]);
        else{
            cout << left.top();
            left.pop();
            answer+=left.size();
        }
        
    }
    return answer;
}

'자윤이와고리즘 > Code' 카테고리의 다른 글

[프로그래머스] 전화번호 목록  (0) 2019.07.22
[프로그래머스] 큰 수 만들기  (0) 2019.07.22
[프로그래머스] 기능개발  (0) 2019.07.22
[프로그래머스] 스킬트리  (0) 2019.07.22
[프로그래머스] 탑  (0) 2019.07.22
#include <string>
#include <vector>
#include <queue>

using namespace std;

vector<int> solution(vector<int> progresses, vector<int> speeds) {
    vector<int> answer;
    queue <int> left_day;
    int day = 0;
    for(int i =0; i < progresses.size(); i++){
        int cal = (100-progresses[i]) % speeds[i];
        int cal2 = (100-progresses[i]) / speeds[i];
        if(cal != 0){
            left_day.push(cal2+1);
        }
        else 
            left_day.push(cal2);
    }
    while(!left_day.empty()){
        day = 0;
        int now_n = left_day.front();
        left_day.pop();
        day+=1;
        while(!left_day.empty()){
            int next_n = left_day.front();
            if(now_n >= next_n){
                left_day.pop();
                day+=1;
            }
            else
                break;
        }
        answer.push_back(day);
    }
    return answer;
}

'자윤이와고리즘 > Code' 카테고리의 다른 글

[프로그래머스] 큰 수 만들기  (0) 2019.07.22
[프로그래머스] 쇠막대기  (0) 2019.07.22
[프로그래머스] 스킬트리  (0) 2019.07.22
[프로그래머스] 탑  (0) 2019.07.22
[프로그래머스] 주식가격  (0) 2019.07.22
#include <string>
#include <vector>
using namespace std;

int solution(string skill, vector<string> skill_trees) {
    int answer = 0;
    string newline = "";
    string tt = "";
    int check = 0;
    for(int i=0; i< skill_trees.size(); i++){
        tt = skill_trees[i];
        newline ="";
        check = 0;
        for(int j =0; j < tt.length(); j++){
            for(int l =0; l < skill.length(); l++){
                if(skill[l]==tt[j])   
                  newline+=tt[j];
            }
            
        }
        for(int k =0 ;k < newline.length(); k++){
            cout << newline[k];
            if(newline[k] !=  skill[k]){
                check = -1;
                break;
            }
        }
        if(check!=-1)
            answer+=1;
    }
    return answer;
}

'자윤이와고리즘 > Code' 카테고리의 다른 글

[프로그래머스] 쇠막대기  (0) 2019.07.22
[프로그래머스] 기능개발  (0) 2019.07.22
[프로그래머스] 탑  (0) 2019.07.22
[프로그래머스] 주식가격  (0) 2019.07.22
[백준] 10819 | 차이를 최대로  (0) 2019.05.14
#include <string>
#include <vector>
#include <stack>
using namespace std;

vector<int> solution(vector<int> heights) {
    vector<int> answer(heights.size());
    stack <int> test;
    stack <int> tmp;
    int leng = heights.size();
    int k =0;
    for(int i=0; i < leng; i++){
        test.push(heights[i]);
    }
    for(int i=leng; i >0; i--){
        k = i;
        int now_n = test.top();
        test.pop();
        while(!test.empty()){
            int next_n = test.top();
            test.pop();
            tmp.push(next_n);
            k--;
            if(next_n > now_n){
                answer[i-1] = k;
                break;
            }

        }
         while(!tmp.empty()){
            test.push(tmp.top());
            tmp.pop();
        
         }
    }
    if(!test.empty()){
        for(int i=0; i < test.size(); i++){
            answer[i] = 0;
        }
    }
    return answer;
}

'자윤이와고리즘 > Code' 카테고리의 다른 글

[프로그래머스] 기능개발  (0) 2019.07.22
[프로그래머스] 스킬트리  (0) 2019.07.22
[프로그래머스] 주식가격  (0) 2019.07.22
[백준] 10819 | 차이를 최대로  (0) 2019.05.14
[백준] 1476 | 날짜계산  (0) 2019.05.09

+ Recent posts