import java.util.HashMap;
class Solution {
public String solution(String[] survey, int[] choices) {
String answer = "";
HashMap<Character, Integer> res = new HashMap<Character, Integer>();
res.put('R',0); res.put('T',0); res.put('C',0); res.put('F',0);
res.put('J',0); res.put('M',0); res.put('A',0); res.put('N',0);
//choices 1~3은 survey의 첫번째, 5~7은 survey의 두번째
for(int i=0;i<choices.length;i++){
char first = survey[i].charAt(0);
char second = survey[i].charAt(1);
switch(choices[i]){
case 1: res.replace(first, res.get(first)+3); break;
case 2: res.replace(first, res.get(first)+2); break;
case 3: res.replace(first, res.get(first)+1); break;
case 5: res.replace(second, res.get(second)+1); break;
case 6: res.replace(second, res.get(second)+2); break;
case 7: res.replace(second, res.get(second)+3); break;
}
}
// System.out.println("res : " +res);
answer += (res.get('R')>=res.get('T')) ? 'R':'T';
answer += (res.get('C')>=res.get('F')) ? 'C':'F';
answer += (res.get('J')>=res.get('M')) ? 'J':'M';
answer += (res.get('A')>=res.get('N')) ? 'A':'N';
return answer;
}
}
미리 종류와 점수를 저장해두고 그대로 저장시키게 해도 된다.
char [][] type = {{'R', 'T'}, {'C', 'F'}, {'J', 'M'}, {'A', 'N'}};
int [] score = {0, 3, 2, 1, 0, 1, 2, 3};
HashMap<Character, Integer> point = new HashMap<Character, Integer>();
// 점수 기록할 배열 초기화
for (char[] t : type) {
point.put(t[0], 0);
point.put(t[1], 0);
}
// 점수 기록
for (int idx = 0; idx < choices.length; idx++){
if(choices[idx] > 4){
point.put(survey[idx].charAt(1), point.get(survey[idx].charAt(1)) + score[choices[idx]]);
} else {
point.put(survey[idx].charAt(0), point.get(survey[idx].charAt(0)) + score[choices[idx]]);
}
}
// 지표 별 점수 비교 후 유형 기입
for (char[] t : type) {
answer += (point.get(t[1]) <= point.get(t[0])) ? t[0] : t[1];
}