HashMap 구조에 각각의 성격 유형을 넣고 기본 값으로 0을 저장한 후, 알맞는 성격 유형 점수를 저장
지표에 맞는 유형끼리 점수를 비교해서 더 큰 값을 반환값에 저장
import java.util.HashMap;
public class MBTI {
public String solution(String[] survey, int[] choices) {
HashMap<Character, Integer> mbti = new HashMap<>(){{
put('R', 0);
put('T', 0);
put('C', 0);
put('F', 0);
put('J', 0);
put('M', 0);
put('A', 0);
put('N', 0);
}};
for (int i = 0; i < survey.length; i++) {
if (choices[i] < 4) mbti.put(survey[i].charAt(0), mbti.get(survey[i].charAt(0)) + 4 - choices[i]);
else if (choices[i] > 4) mbti.put(survey[i].charAt(1), mbti.get(survey[i].charAt(1)) + choices[i] - 4);
}
String result = "";
result += mbti.get('R') >= mbti.get('T') ? "R" : "T";
result += mbti.get('C') >= mbti.get('F') ? "C" : "F";
result += mbti.get('J') >= mbti.get('M') ? "J" : "M";
result += mbti.get('A') >= mbti.get('N') ? "A" : "N";
return result;
}
public static void main(String[] args) {
MBTI mbti = new MBTI();
System.out.println(mbti.solution(new String[]{"AN", "CF", "MJ", "RT", "NA"}, new int[]{5, 3, 2, 7, 5})); // "TCMA"
System.out.println(mbti.solution(new String[]{"TR", "RT", "TR"}, new int[]{7, 1,3 })); // "RCJA"
}
}