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();
}
}