프로그래머스 LEVEL 1(성격 유형 검사하기)

image

  • 사용 언어 : javascript

  • 해결 날짜 : 2022-08-23

  • 해결 방법 :

    • 각 유형별 category 객체 생성 후 0으로 초기화
    • choices 배열을 돌며 선택한 값에 따라 category에 반영
    • 지표 별 유형 두개를 비교하여 큰 값으로 answer에 추가
  • 회고 : category 속 지표 별 유형 두개를 비교하는 과정을 현재 코드가 아닌 다른 방법이 있을까를 고민하다 못찾고 제출했는데 다른 사람들도 이런 식으로 했다.

  • 코드

    function solution(survey, choices) {
        var answer = '';
        const category = { R: 0, T: 0, C: 0, F: 0, J: 0, M: 0, A: 0, N: 0 };
            
        for (const [index, choice] of choices.entries()) {
            if (choice > 4) {
                category[survey[index].charAt(1)] += choice - 4;
            } else if (choice < 4) {
                category[survey[index].charAt(0)] += 4 - choice;
            }
        }
            
        answer += category.R >= category.T ? 'R' : 'T';
        answer += category.C >= category.F ? 'C' : 'F'; 
        answer += category.J >= category.M ? 'J' : 'M'; 
        answer += category.A >= category.N ? 'A' : 'N'; 
            
        return answer;
    }
    
  • 출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/challenges