https://school.programmers.co.kr/learn/courses/30/lessons/118666
Map을 이용해서 각 성격유형의 점수를 저장하고
R, T
C, F
J, M
A, N
점수를 비교해서 출력
import java.util.HashMap;
class Solution {
static HashMap<String, Integer> map = new HashMap<>();
public String solution(String[] survey, int[] choices) {
String answer = "";
for (int i = 0; i < survey.length; i++) {
givePoint(survey[i], choices[i]);
}
answer = getAnswer();
return answer;
}
private String getAnswer() {
StringBuilder sb = new StringBuilder();
if (map.getOrDefault("R", 0) >= map.getOrDefault("T", 0)) {
sb.append("R");
} else sb.append("T");
if (map.getOrDefault("C", 0) >= map.getOrDefault("F", 0)) {
sb.append("C");
} else sb.append("F");
if (map.getOrDefault("J", 0) >= map.getOrDefault("M", 0)) {
sb.append("J");
} else sb.append("M");
if (map.getOrDefault("A", 0) >= map.getOrDefault("N", 0)) {
sb.append("A");
} else sb.append("N");
return sb.toString();
}
private void givePoint(String s, int choice) {
if(choice == 4) return;
if (choice < 4) {
map.put(s.substring(0, 1), map.getOrDefault(s.substring(0,1), 0) + 4 - choice);
} else {
map.put(s.substring(1, 2), map.getOrDefault(s.substring(1,2), 0) + choice - 4);
}
}
}