+1 2022 KAKAO TECH INTERNSHIP : 성격 유형 검사하기

이동한·2023년 6월 12일
0

알고리즘 기출

목록 보기
3/22
import java.util.*;

class Solution {
    private static String[] fixed = {"T","R","F","C","M","J","N","A"};
public String solution(String[] survey, int[] choices) {
    Map<String,Integer> dict = new HashMap<>();
    // 초기화
    for(String key : fixed){
        dict.put(key,0);
    }
    // 점수 갱신
    for (int i=0; i<choices.length; i++){
        int score = choices[i]-4;
        String[] possibleKey = survey[i].split("");
        String exactKey = null;
        
        if(score>0){
            exactKey = possibleKey[1]; 
            dict.put(exactKey, dict.get(exactKey)+score);
        }else if(score<0){
            exactKey = possibleKey[0];
            score *=-1;
            dict.put(exactKey, dict.get(exactKey)+score);
        }
    }
    // 답 조합
    StringBuilder sb = new StringBuilder();
    for(int i=0; i<fixed.length-1; i++){
        if(i%2 == 1) continue;
        if(dict.get(fixed[i])>dict.get(fixed[i+1])){
            sb.append(fixed[i]);
        }else{
            sb.append(fixed[i+1]);
        }
    }
    String answer = sb.toString();
    return answer;
}
}

두번째

import java.util.*;

class Solution {
    Map<Character,Integer> map = new HashMap<>();
    Character[] keys = {'R','T','C','F','J','M','A','N'};
    
    public String solution(String[] survey, int[] choices) {
        // 지표별 점수 초기화
        for(Character key : keys){
            map.put(key,0);
        }
        // choice로 지표별 점수 갱신
        for(int i=0; i<survey.length; i++){
            int score = choices[i] - 4;
            Character posKey = survey[i].charAt(1);
            Character negKey = survey[i].charAt(0);
            
            if(score<0){
                map.put(negKey,map.get(negKey)-score);
            }else if(score >0) map.put(posKey,map.get(posKey)+score);
        }
        
        StringBuilder sb = new StringBuilder();
        for(int i=0; i<keys.length; i++){
            if(i%2 ==1) continue;
            if(map.get(keys[i])<map.get(keys[i+1])) sb.append(keys[i+1]);
            else sb.append(keys[i]);
        }
    return sb.toString();
        
    }   
}
profile
Pragmatic, Productive, Positivist

0개의 댓글