본문으로 바로가기

[풀이 - Gemstones] : <Easy / 93.29%>

더보기
int gemstones(vector<string> arr)
{
    int count = arr.size();
    vector<map<int, int>> mv;
    //
    for(int i = 0; i < count; ++i)
    {
        map<int, int> m;
        for(int j = 0 ; j < arr[i].length(); ++j)
        {
            string s = arr[i];
            int value = s[j] - 'a';
            m[value]++;
        }
        mv.push_back(m);
    }
    //
    int result = 0;
    for(int j = 0; j < 26; ++j)
    {
        bool b = true;
        for(int i = 0; i < mv.size(); ++i)
        {
            b *= mv[i][j];
        }
        if(b == true)
            ++result;
    }
    //
    return result;
}

[풀이 - Beautiful Binary String] : <Easy / 94.77%>

더보기
int beautifulBinaryString(string b)
{
    int result = 0;
    //
    while(true)
    {
        int idx = b.find("010");
        //
        if(idx == -1)
            break;
        else
        {
            b[idx+2] = '1';
            ++result;
        }
    }
    //
    return result;
}

[풀이 - Closest Numbers] : <Easy / 88.25%>

더보기
vector<int> closestNumbers(vector<int> arr)
{
    vector<int> result;
    //
    sort(arr.begin(), arr.end());
    //
    int absDifMin = INT_MAX;
    for(int i = 1; i < arr.size(); ++i)
    {
        int absDif = abs( arr[i] - arr[i-1] );
        if(absDif < absDifMin)
            absDifMin = absDif;
    }
    //
    for(int i = 1; i < arr.size(); ++i)
    {
        int absDif = abs( arr[i] - arr[i-1] );
        if(absDif == absDifMin)
        {
            result.push_back(arr[i-1]);
            result.push_back(arr[i]);
        }
    }
    //
    return result;
}

[풀이 - The Love-Letter Mystery] : <Easy / 96.61%>

더보기
int theLoveLetterMystery(string s)
{
    int result = 0;
    //
    int l = s.length();
    //
    int i = 0;
    while(i < l / 2)
    {
        result += abs(s[i] - s[l-1-i]);
        ++i;
    }
    //
    return result;
}