문제 설명
나만의 카카오 성격 유형 검사 만들기
성격 유형 검사는 4개의 지표를 기준으로 성격 유형을 분류합니다. 각 지표는 두 가지 성격 유형 중 하나로 결정됩니다.
1. 성격 유형 지표

4개의 지표가 존재하므로 가능한 성격 유형은 총 16가지입니다.
예를 들어, "RFMN" 또는 "TCMA"와 같은 성격 유형이 가능합니다.
2. 검사지 구성
- 검사지에는 총 n개의 질문이 포함됩니다.
- 각 질문에는 다음과 같은 7개의 선택지가 있습니다:
- 매우 비동의
- 비동의
- 약간 비동의
- 모르겠음
- 약간 동의
- 동의
- 매우 동의
3. 점수 계산 방식
각 질문은 하나의 지표를 기준으로 성격 유형 점수를 판단합니다. 예를 들어, 아래와 같은 표를 기준으로 점수를 계산합니다.

4. 주의할 점
- 네오형이 비동의, 어피치형이 동의로만 고정되지 않습니다.
(질문에 따라 반대 상황도 가능합니다.) - 선택지의 점수는 고정:
- 매우 동의/비동의 → 3점
- 동의/비동의 → 2점
- 약간 동의/비동의 → 1점
- 모르겠음 → 0점
5. 검사 결과 산출
- 모든 질문의 점수를 합산하여 각 지표별 점수를 계산합니다.
- 각 지표에서 높은 점수를 받은 성격 유형이 검사자의 성격 유형이 됩니다.
- 동점일 경우:
- 사전순으로 빠른 성격 유형이 선택됩니다.
6. 구현
검사를 위한 데이터는 다음과 같은 매개변수로 주어집니다:
- survey: 각 질문에서 판단하는 지표를 담은 문자열 배열.
- choices: 검사자가 각 질문에 대해 선택한 선택지를 담은 정수 배열.
결과적으로, 검사자의 성격 유형을 지표 번호 순서대로 반환하는 solution 함수를 작성해야 합니다.
의사코드
- 유형 타입별로 점수를 변수에 저장한다.
- [방법] Char[26] 에 담는다. (A~Z 유형)
- [방법] Map에 담는다.
- [반복문] survey 사이즈만큼 순회한다.
- choices의 응답 결과에 따라 점수를 계산한다.
- 점수가 4보다 클 경우, B타입에 점수를 준다.
- 점수가 4보다 작을 경우, A타입에 점수를 준다.
- [반복문] 정해진 성격 유형 쌍을 순회한다.
- 맵에서 해당 유형(A,B)의 점수를 가져온다.
- A가 크거나 작으면 결과값에 A유형을 추가한다.
- 그렇지 않으면 B유형을 추가한다.
- 결과값을 반환한다.
코드 작성
#include <string>
#include <vector>
#include <map>
using namespace std;
string solution(vector<string> survey, vector<int> choices) {
map<char, int> map;
string answer = "";
for (int idx = 0; idx < choices.size(); ++idx)
{
char typeAIdx = survey[idx][0];
char typeBIdx = survey[idx][1];
int choice = choices[idx];
if (choice < 4)
{
map[typeAIdx] += 4 - choice;
}
if (choice > 4)
{
map[typeBIdx] += choice - 4;
}
}
char personalityTypes[4][2] =
{
{'R','T'},
{'C','F'},
{'J','M'},
{'A','N'},
};
for (int i = 0; i < 4; i++)
{
int scoreA = map[personalityTypes[i][0]];
int scoreB = map[personalityTypes[i][1]];
if (scoreA >= scoreB)
{
answer += personalityTypes[i][0];
}
else
{
answer += personalityTypes[i][1];
}
}
return answer;
}
'Algorithm > Practice' 카테고리의 다른 글
| [Algorithm] 달리기 경주 (0) | 2025.01.16 |
|---|---|
| [Algorithm] 바탕화면 정리 (1) | 2025.01.15 |
| [Algorithm] 햄버거 만들기 (2) | 2025.01.14 |
| [Algorithm] 둘만의 암호 (2) | 2025.01.13 |
| [Algorithm] 대충 만든 자판 (0) | 2025.01.13 |