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

KimYoungWoong·2022년 8월 25일
0

Programmers

목록 보기
26/60
post-thumbnail

🚩문제 주소


📄풀이


먼저 성격 유형 오브젝트를 만들어줍니다.

survey의 각 원소를 front, end로 나누어 준 뒤,
선택지가 5, 6, 7이면 성격유형[end]에 선택지 % 4를 한 점수를 더해주고,
1, 2, 3이면 성격유형[front]에 4 - (선택지 % 4)를 한 점수를 더해줍니다.

지표가 2개씩 붙어있기 때문에, 비어 있는 비교 배열에 성격유형과 점수가 담긴 배열을 2개까지 담고, 조건에 맞는 성격유형을 정답에 붙여주고 비교 배열을 초기화합니다.



👨‍💻코드


function solution(survey, choices) {
    let answer = '';
    const character = {R:0,T:0,C:0,F:0,J:0,M:0,A:0,N:0,X:0};
    
    survey.forEach((v,i)=>{
        const [front, end] = Array.from(v);
        if (choices[i]/4 >= 1) {
            const num = choices[i]%4;
            character[end] += num
        } else if (choices[i]/4 < 1 && choices[i]%4 !== 0) {
            const num = 4 - choices[i]%4;
            character[front] += num
        }
    });
    
    let compare = [];
    for (let c in character) {
        if (compare.length === 2) {
            if (compare[0][1] < compare[1][1]) answer += compare[1][0];
            else answer += compare[0][0];
            compare.length = 0;
        }
        compare.push([c, character[c]]);
    }
    
    return answer;
}

profile
블로그 이전했습니다!! https://highero.tistory.com

0개의 댓글