2022 KAKAO TECH INTERNSHIP-성격 유형 검사하기- JAVA

2025. 2. 23. 21:57백준 및 프로그래머스/프로그래머스 LV 1

문제 설명

 

입출력 예시

 

1.문제를 보면 굉장히 쉽게 느껴질 수 있습니다. 실제 survey에 있는 2명을 비교합니다.(choices[i]에 따라서 점수를 매겨줍니다).

2.예를들어 1,2,3일 경우 A의 점수를 매길 수 있고 5,6,7이라면 N에게 점수를 매길 수 있습니다.

3."AN"이며 choices가 3일 경우 A에게 1점. 6일 경우 N에게 2점.

3.점수를 다 매겨준 후 젤 높은 점수를 가진 사람들끼리 출력해주면 되는 문제입니다.

4.혹시나 점수가 같을 경우는 사전의 앞 순서를 출력해주면 됩니다.

5.예를 들어 A와N이 점수가 같다고 가정하면 A를 출력해주시면 됩니다.

 

문제 풀면서 MBTI 느낌의 문제라고 생각하시면 쉽게 풀릴 수 있을 거라 생각합니다.

 

전체 코드


import java.util.*;
import java.lang.*;
class Solution {
    public String solution(String[] survey, int[] choices) {
        String answer = "";
        
        // R,T,C,F,J,M,A,N의 점수를 kakao에 저장.
        Map<Character ,Integer> kakao = new HashMap<>();
        kakao.put('R',0);
        kakao.put('T',0);
        kakao.put('C',0);
        kakao.put('F',0);
        kakao.put('J',0);
        kakao.put('M',0);
        kakao.put('A',0);
        kakao.put('N',0);
        
        // ["AN", "CF", "MJ", "RT", "NA"] 비교
        // A와 N , C와 F, M와 J, R와 T , N와 A 비교 후 점수 산정
        for(int i = 0 ; i<survey.length; i++){
            char name1 = survey[i].charAt(0);
            char name2 = survey[i].charAt(1);
            int score = choices[i];
            if(score<4){
                if(score == 1){
                    kakao.put(name1,kakao.get(name1)+3);
                }else if(score == 2){
                    kakao.put(name1,kakao.get(name1)+2);
                }else if( score == 3){
                    kakao.put(name1,kakao.get(name1)+1);
                }
            }else{
                if(score == 5){
                    kakao.put(name2,kakao.get(name2)+1);
                }else if(score == 6){
                    kakao.put(name2,kakao.get(name2)+2);
                    
                }else if(score == 7) {
                    kakao.put(name2,kakao.get(name2)+3);
                }
            }
        }
        
        //(R,T),(C,F),(J,M),(A,N) 비교후 성격 유형 확정.
        
        if(kakao.get('R') < kakao.get('T')){
            answer+="T";
        }else{
            answer+="R";
        }
        if(kakao.get('C') < kakao.get('F')){
            answer+="F";
        }else{
            answer+="C";
        }
        if(kakao.get('J') < kakao.get('M')){
            answer+="M";
        }else{
            answer+="J";
        }
        if(kakao.get('A') < kakao.get('N')){
            answer+="N";
        }else{
            answer+="A";
        }
        
        
        
        return answer;
    }
}