Coding_Test/2022_KAKAO_INTERN

[2022 카카오 인턴] 성격 유형 검사하기 (C++)

Codetesing 2022. 10. 10. 22:23

1번문제로 크게 어렵지 않았으며 알고리즘 없는 구현문제이다.

중간값 처리만 잘 해주면 되었고 선택에 따라 점수만 잘 올려주면 쉽게 구현할 수 있을것이다.

#include <string>
#include <vector>

using namespace std;

// RT, CF, JM, AN   < 동의  비동의 >

string solution(vector<string> survey, vector<int> choices) {
    string answer = "";
    string selection[4] = {"RT", "CF", "JM", "AN"};
    int n = survey.size();
    int cnt[26] = {0};

    for(int i = 0; i < n; i++){
        int score = choices[i] - 4;

        if(score < 0)
            cnt[survey[i][0] - 'A'] += score * -1;
        else
            cnt[survey[i][1] - 'A'] += score;
    }

    for(int i = 0; i < 4; i++) {
        if(cnt[selection[i][0] - 'A'] > cnt[selection[i][1] - 'A'])
            answer = answer + selection[i][0];
        else if (cnt[selection[i][0] - 'A'] < cnt[selection[i][1] - 'A'])
            answer = answer + selection[i][1];
        else
        {
            if(selection[i][0] > selection[i][1])
                answer = answer + selection[i][1];
            else
                answer = answer + selection[i][0];
        }
    }

    return answer;
}