favicon Jay Lee DevLog

728x90
300x250
#include <string>
#include <vector>

using namespace std;

int solution(vector<int> array) {
    int answer = 1, nMax = 0;
    int nCount[1000]{ 0 };
    if (array.size() == 1)
        return array[0];
    else
    {
        for (int i = 0; i < array.size(); i++)
        {
            nCount[array[i]]++;
            if (nMax < nCount[array[i]]) 
            {
                nMax = nCount[array[i]]; // 몇번 나왔나
                answer = array[i]; // 최빈값
            }
            else if(nMax == nCount[array[i]])
                answer = -1;
        }
            
    }

    return answer;
}

와..

이번 문제는 문제를 잘못파악하고 삽질을 너무해서

푸는데 좀 걸렸다..

최빈값을 구해야하는데 최빈값이 몇번나왔냐로 봐가지고

계속 답이 틀려서 삽질을 했다..

 

풀이는 조건에 맥스가 1000개였기 때문에

1000개의 배열을 만들고 vector 숫자 값을 카운트를 올려

몇번 나왔는지 저장했고,

 

 nMax에 제일 빈도수가 높은 값을 넣어주면서 for문을 돌렸다.

그리고 확실하진 않은데,

숫자는 1,2,3,4,5,6 이런식으로 순차적으로 커진다는 기준으로

else if 부분에서 카운트를 체크해 -1 값을 리턴해줬다.

 

이게 맞는지는 모르겠다.

나는 3, 3, 1, 2, 3, 3 뭐 이런식으로도

값이 들어갈 경우도 고려해서 짜봤는데,

잘안돼서 그냥 순차적으로 커지는건가? 라는 생각으로 짰더니

됐다..

여튼 오랜만에 고생좀 한 것 같다.

728x90
반응형

+ Recent posts

/ /

Contact

📧 dlwjdwls60@naver.com


블로그에 내용이 있으면 해당 글을 보여주며, 없으면 내용이 복사된 채로 ChatGPT로 연결됩니다.