본문으로 바로가기

기능 개발 ] : < LV2 / 22829명 >

더보기
#include <string>
#include <vector>

using namespace std;

vector<int> solution(vector<int> progresses, vector<int> speeds)
{
    vector<int> answer;
    //
    int totalRelease = progresses.size();
    int todayRelease = 0;
    int priority = 0;
    while(priority < totalRelease)
    {
        todayRelease = 0;
        // daily work
        for(int i = priority; i < progresses.size(); ++i)
            progresses[i] += speeds[i];
        // check release
        for(int i = priority; i < progresses.size(); ++i)
        {
            if(progresses[i] >= 100)
            {
                ++todayRelease;
                ++priority;
            }
            else
                break;
        }
        //
        if(todayRelease != 0)
            answer.push_back(todayRelease);
    }
    //
    return answer;
}

 


짝지어 제거하기 ] : < LV2 / 5325명 >

더보기
#include <iostream>
#include <string>
#include <stack>

using namespace std;

int solution(string s)
{
    stack<char> res;
    // 
    if( (s.size() < 2) || (s.size() % 2 == 1) )
        return 0;
    //
    for(int i = 0; i < s.size(); ++i)
    {
        char c = s[i];
        //
        if(res.empty())
            res.push(c);
        else
        {
            if(res.top() == c)
                res.pop();
            else
                res.push(c);
        }
    }
    //
    return res.empty();
}

# STL::stack
# top 실행 전 empty 체크(Segmentation Fault)

 


멀쩡한 사각형 ] : < LV2 / 8014 명 >

더보기
using namespace std;

long long GetGCD(long long a, long long b)
{
    long long mod = 0;
    //
    while(b != 0)
    {
        mod = a % b;
        a = b;
        b = mod;
    }
    //
    return a;
}

long long solution(int w,int h)
{
    long long answer = (long long)w * (long long)h;
    // GetGCD ( 유클리드 호제법 )
    long long gcd = GetGCD(w, h);
    // logic
    answer -= (w + h - gcd);
    //
    return answer;
}

# 최대공약수, gcd, 유클리드 호제법

# logic : (1 + (w' - 1) + (h' - 1)) * gcd => w + h - gcd