[프로그래머스]성격 유형 검사하기 JavaScript

hatban·2022년 9월 6일

💡성격 유형 검사하기

✔️ 문제 링크

https://school.programmers.co.kr/learn/courses/30/lessons/118666?language=javascript

각각 유형 지표가 4가지밖에 되지 않아서 객체로 각 유형별로 관리하려고 했다

survey의 문자열에서 첫번째 유형과 두번째 유형을 분리한 후, choices에서 점수가 4점보다 낮으면 첫번째 유형에 점수를 주고, 4점보다 높으면 두번째 유형에 점수를 준다

완성된 객체를 [유형이름, 점수] 로 구성된 배열로 옮겨준다.

배열의 길이는 유형이 8가지라 8이고 2개씩 쌍으로 이루어져 4번만 순회하면 정답을 구할 수 있다.

function solution(survey, choices) {
    var answer = '';
    let table = {
        R : 0,
        T: 0,
        C:0,
        F:0,
        J:0,
        M:0,
        A:0,
        N:0     
    }
    let len = survey.length; // 조사 문항 갯수
    for(let i = 0; i<len; i++){
        let first = survey[i][0];
        let second = survey[i][1];
        let score = choices[i];
        
        if(score === 4) continue;
        
        if(score < 4){
            let get = 4-score;
            table[first] += get;
        }else{
            table[second] += score - 4;
        }      
    }
    let arr = [['R',table['R']], 
               ['T',table['T']], 
               ['C',table['C']], 
               ['F',table['F']], 
               ['J',table['J']], 
               ['M',table['M']], 
               ['A',table['A']], 
               ['N',table['N']]
               ];
    for(let i = 0; i<8; i+=2){
        if(arr[i][1] >= arr[i+1][1]){
            answer+= arr[i][0];
        }else{
            answer+= arr[i+1][0];
        }
    }
    return answer;
}

0개의 댓글