본문으로 바로가기

[풀이 - Find the Median] : <Easy / 89.35%>

더보기
int findMedian(vector<int> arr)
{
    sort(arr.begin(), arr.end());
    int idx = arr.size() / 2;
    return arr[idx];
}

 


[풀이 - Palindrome Index] : <Easy / 66.69%>

더보기
bool IsPalindrome(string s)
{
    int l = s.length();
    for(int i = 0; i < (l / 2); ++i)
    {
        int r = l-1-i;
        //
        if(s[i] != s[r])
            return false;
    }
    //
    return true;
}
//
int palindromeIndex(string s)
{
    int l = s.length();
    int result = -1;
    //
    int i = 0, r = 0;
    for(; i < (l / 2); ++i)
    {
        r = l-1-i;
        //
        if(s[i] != s[r])
            break;
    }
    //
    string temp = s.erase(i, 1);
    if(IsPalindrome(temp))
        result = i;
    else
        result = r;
    //
    return result;
}

 


[풀이 - Anagram] : <Easy / 89.05%>

더보기
int anagram(string s)
{
    int result = 0;
    int l = s.length();
    //
    if(l % 2 == 1)
        return -1;
    //
    int halfCount = l/2;
    string s1 = s.substr(0, halfCount);
    string s2 = s.substr(halfCount, l);
    //
    int m[26] = {0};
    for(int i = 0; i < halfCount; ++i)
    {
        int idx = s1[i]-'a';
        m[idx]++;
    }
    //
    for(int i = 0; i < halfCount; ++i)
    {
        int idx = s2[i]-'a';
        if(m[idx] == 0)
            ++result;
        else
            --m[idx];
    }
    //
    return result;
}

 


[풀이 - Making Anagrams] : <Easy / 93.03%>

더보기
int makingAnagrams(string s1, string s2)
{
    const int keyCount = 26;
    int result = 0;
    int arr[keyCount] = {0};
    //
    for(int i = 0; i < s1.length(); ++i)
    {
        int idx = s1[i] - 'a';
        ++arr[idx];
    }
    //
    for(int i = 0; i < s2.length(); ++i)
    {
        int idx = s2[i] - 'a';
        --arr[idx];
    }
    //
    for(int i = 0; i < keyCount; ++i)
        result += abs(arr[i]);
    //
    return result;
}