[코테/JAVA] 2022 KAKAO TECH INTERNSHIP : 성격 유형 검사하기

    728x90
    반응형

    2023.01.30

    코테 문제풀이 25주차 02번 문제

     

     

    문제

     

    프로그래머스

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

    programmers.co.kr

     

     

    접근방법

      ① 문제 그대로 풂

     

     

    풀이

    접근방법 : ①

    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    import java.util.Map;
    import java.util.HashMap;
     
    class Solution {
        public String solution(String[] survey, int[] choices) {
            return chckPersonalityType(survey, choices);
        }
     
        /**
         * 성격유형검사하기
         * @param survey 성격 유형
         * @param choices 검사지
         * return String타입의 성격 유형
         */
        public String chckPersonalityType(String[] survey, int[] choices) {
            /*
             * @Desc
             * 1.검사지의 기준값을 구한다. (choice가 4일때 0점)
             * 2.choice와 기준값을 비교한다.
             * 3.0보다 작으면 성격 유형의 왼쪽유형의 점수로. 0보다 크면 성격 유형의 오른쪽유형의 점수로 분기처리한다.
             * 4.map에 성격 유형별 점수를 담는다.
             * 5.점수가 같을 경우 사전순으로 선택한다.
             * 6.성격 유형을 STring타입으로 리턴한다.
             */
     
            // Constants
            int questionCnt = 7;
            int base = (int)(questionCnt/2)+1;
            String personalityType = "RTCFJMAN";
     
            // Instance
            String answer = "";
            Map<String, Integer> map = new HashMap<>();
            for (String split: personalityType.split(""))
                map.put(split0);
     
            for (int i=0; i<survey.length; i++) {
                int score = choices[i] - base;
                String type = "";
                if (score >= 0)
                    type = survey[i].split("")[1];
                else {
                    type = survey[i].split("")[0];
                    score *= -1;
                }
                map.put(type, map.get(type) + score);
            }
     
            if (map.get("T"> map.get("R"))
                answer += "T";
            else
                answer += "R";
     
            if (map.get("F"> map.get("C"))
                answer += "F";
            else
                answer += "C";
     
            if (map.get("M"> map.get("J"))
                answer += "M";
            else
                answer += "J";
     
            if (map.get("N"> map.get("A"))
                answer += "N";
            else
                answer += "A";
     
            return answer;
        }
    }
    cs

     

     

    결과

     

     

    주의사항

      ① 없음

    728x90
    반응형

    댓글