package programmers.sully.week5;
import java.util.HashMap;
import java.util.Map;
public class 성격_유형_검사하기_Sully {
public static String solution(String[] survey, int[] choices) { // 동일한 길이
StringBuilder answer = new StringBuilder();
Map<String, Integer> indicatorMap = new HashMap<>();
indicatorMap.put("R", 0);
indicatorMap.put("T", 0);
indicatorMap.put("C", 0);
indicatorMap.put("F", 0);
indicatorMap.put("J", 0);
indicatorMap.put("M", 0);
indicatorMap.put("A", 0);
indicatorMap.put("N", 0);
// 맵으로 표 정리
for (int i = 0; i < survey.length; i++) {
String first = survey[i].split("")[0]; // i+1번 질문의 "비동의" 관련 선택지
String second = survey[i].split("")[1]; // i+1 질문의 "동의" 관련 선택지
String type = "";
int score = 0;
switch (choices[i]) {
case 1 -> {
// 매우 비동의
type = first;
score = 3;
}
case 2 -> {
// 비동의
type = first;
score = 2;
}
case 3 -> {
// 약간 비동의
type = first;
score = 1;
}
case 4 -> {
continue;
}
case 5 -> {
// 약간 동의
type = second;
score = 1;
}
case 6 -> {
// 동의
type = second;
score = 2;
}
case 7 -> {
// 매우 동의
type = second;
score = 3;
}
}
// type 같은 거에다가 value 값에 score 계속 더해줌
indicatorMap.put(type, score + indicatorMap.get(type));
}
// 1~4 지표 비교하여 점수 누가 더 높은지 판별
if (indicatorMap.get("R") >= indicatorMap.get("T")) {
answer.append("R");
} else if (indicatorMap.get("R") < indicatorMap.get("T")) {
answer.append("T");
}
if (indicatorMap.get("C") >= indicatorMap.get("F")) {
answer.append("C");
} else if (indicatorMap.get("C") < indicatorMap.get("F")) {
answer.append("F");
}
if (indicatorMap.get("J") >= indicatorMap.get("M")) {
answer.append("J");
} else if (indicatorMap.get("J") < indicatorMap.get("M")) {
answer.append("M");
}
if (indicatorMap.get("A") >= indicatorMap.get("N")) {
answer.append("A");
} else if (indicatorMap.get("A") < indicatorMap.get("N")) {
answer.append("N");
}
return answer.toString();
}
public static void main(String[] args) {
System.out.println(solution(new String[]{"AN", "CF", "MJ", "RT", "NA", "AN"}, new int[]{5, 3, 2, 7, 5, 4}));
System.out.println(solution(new String[]{"TR", "RT", "TR"}, new int[]{7, 1, 3}));
}
}
Leave a comment