코딩테스트

[프로그래머스/Java] 성격 유형 검사하기 (HashMap)

데메즈 2026. 7. 6. 13:27
반응형

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

 

프로그래머스

SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

import java.util.HashMap;

class Solution {
    public String solution(String[] survey, int[] choices) {
        String answer = "";
        HashMap<String, Integer> map = new HashMap<>();
        
        // 1. survey 입력된 string 나누고 choices 5이상이면 뒤에꺼 3이하면 앞에꺼 4면 통과 + 점수 더해서 hash 넣기
        for(int i=0; i<survey.length; i++){
            String first = survey[i].substring(0,1);
            String second = survey[i].substring(1,2);
            
            if(choices[i] == 1){
                map.put(first, map.getOrDefault(first, 0)+3);
            } else if(choices[i] == 2){
                map.put(first, map.getOrDefault(first, 0)+2);
            } else if(choices[i] == 3){
                map.put(first, map.getOrDefault(first, 0)+1);
            } else if(choices[i] == 5){
                map.put(second, map.getOrDefault(second, 0)+1);
            } else if(choices[i] == 6){
                map.put(second, map.getOrDefault(second, 0)+2);
            } else if(choices[i] == 7){
                map.put(second, map.getOrDefault(second, 0)+3);
            }
        }
        
        // 2. 각 지표 중에 더 많은 걸 선택
        int rValue = map.getOrDefault("R",0);
        int tValue = map.getOrDefault("T",0);
        int cValue = map.getOrDefault("C",0);
        int fValue = map.getOrDefault("F",0);
        int jValue = map.getOrDefault("J",0);
        int mValue = map.getOrDefault("M",0);
        int aValue = map.getOrDefault("A",0);
        int nValue = map.getOrDefault("N",0);
        
        if(rValue >= tValue){
            answer += "R";
        } else {
            answer += "T";
        }
        
        if(cValue >= fValue){
            answer += "C";
        } else {
            answer += "F";
        } 
        
        if(jValue >= mValue){
            answer += "J";
        } else {
            answer += "M";
        }
        
        if(aValue >= nValue){
            answer += "A";
        } else {
            answer += "N";
        }
        
        
        return answer;
    }
}
반응형