티스토리 뷰

 

2022.11.30

프로그래머스 스쿨 Lv01. 성격유형검사하기


 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

🚀 문제 파악

*성격 유형 검사는 아래 4개 지표로 성격 유형 구분
**1번 R형,T형 / 2번 C형,F형 / 3번 J형,M형 / 4번 A형,N형
*성격 유형은 총 16가지
*n개의 질문, 질문에는 7가지 선택지


*질문이 NA이라면 비동의는 N, 동의는 A에 대한 점수를 갖는다

*질문이 AN이라면 비동의는 A, 동의는 N에 대한 점수를 갖는다

*질문이 AN이라면 선택 결과에 따라 아래와 같이 점수가 부여된다
**매우 비동의(N3점)
**비동의(N2점)
**약간 비동의(N1점)
**모르겠음(-)
**약간 동의(A1점)
**동의(A2점)
**매우 동의(A3점)

 

🚀 문제 해결

1. 선택지가 4보다 크거나 같은 지 확인한다

    *4보다 크거나 같다면, now 변수에 문제 유형의 앞글자를 저장한다

    *4보다 작다면, now변수에 문제 유형의 뒷글자를 저장한다

2. 선택지의 값이 key에 해당하는 score의 값을 result[now]에 더한다

3. 모든 선택지를 확인한 후, 성격 유형을 도출한다

    *점수가 큰 성격유형을 도출한다

    *점수가 같은 경우, 사전순으로 빠른 성격유형에 해당한다 

 

🚀 통과 코드

function solution(survey, choices) {
    var answer = '';
    var result = { R:0, T:0, C:0, F:0, J:0, M:0, A:0, N:0 }
    var score = { 1:3, 2:2, 3:1, 4:0, 5:1, 6:2, 7:3}

    // 선택지 점수 확인 
    for(var i in survey){
        if(choices[i] <= 4) now = survey[i][0];
        else if(choices[i] > 4) now = survey[i][1];
        result[now] += score[choices[i]];       
    }

    // 점수 확인 후 성격 유형 도출 
    for(var i = 0; i < Object.keys(result).length; i++){
        if(i % 2 != 0) continue;
        if(result[Object.keys(result)[i]] >= result[Object.keys(result)[i+1]]){
        	answer+=Object.keys(result)[i];
        }else {
        	answer+=Object.keys(result)[i+1];
       	}
    }
    return answer;
}

 

 

댓글
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
최근에 올라온 글
글 보관함
Total
Today
Yesterday