import java.util.*;
class Solution {
public String solution(String[] survey, int[] choices) {
String answer="";
Map<Character,Integer> map = new HashMap<>();
// R T // C F // J M // A N
for(int i=0; i<survey.length; i++){
int value = choices[i];
if(value<=3) {
char ch = survey[i].charAt(0);
map.put(ch,map.getOrDefault(ch,0)+4-value);
}
else if(value>=4){
char ch = survey[i].charAt(1);
map.put(ch,map.getOrDefault(ch,0)+value-4);
}
}
StringBuilder sb = new StringBuilder();
sb.append(map.getOrDefault('R',0) >= map.getOrDefault('T',0) ? 'R' : 'T');
sb.append(map.getOrDefault('C',0) >= map.getOrDefault('F',0) ? 'C' : 'F');
sb.append(map.getOrDefault('J',0) >= map.getOrDefault('M',0) ? 'J' : 'M');
sb.append(map.getOrDefault('A',0) >= map.getOrDefault('N',0) ? 'A' : 'N');
answer = sb.toString();
return answer;
}
}
일단 이 문제를 이해하는데 5분정도 걸렸다 ㅎ,,
그리고 각각의 설문에 대한 선택의 점수가 어딘가에 저장을 하고 그 점수를 비교해서 성격유형을 판별 해야한다. 그렇기 때문에 HashMap을 이용해서 문제를 해결하는게 좋다.
각각 설문에 대한 점수를 map에 저장하고 삼항연산자로 더 큰 점수를 가진 유형을 깔끔하게 StringBuilder에 담고 toString()으로 answer에 담는다!