Java/Coding Test

성격 유형 검사하기 문제풀이

최고다최코딩 2023. 9. 25. 00:58
728x90

4개의 지표가 있고

지표에 관한 설문이 주어질 때 답안에 따라 점수를 부여하여 높은 점수를 가진 성격 유형을 가진다

이때 동점일 경우 사전순으로 빠른 유형을 선택한다. 

 

public String solution(String[] survey, int[] choices) {

String answer = "";

Map<String,Integer> map = new HashMap<String,Integer>();

 

for (int i = 0; i < choices.length; i++) {

String before =survey[i].charAt(0)+"";

String after =survey[i].charAt(1)+"";

if(choices[i]==1) {

map.put(before, map.getOrDefault(before, 0)+3);

}else if(choices[i]==2) {

map.put(before, map.getOrDefault(before, 0)+2);

}else if(choices[i]==3) {

map.put(before, map.getOrDefault(before, 0)+1);

}else if(choices[i]==4) {

 

}else if(choices[i]==5) {

map.put(after, map.getOrDefault(after, 0)+1);

}else if(choices[i]==6) {

map.put(after, map.getOrDefault(after, 0)+2);

}else if(choices[i]==7) {

map.put(after, map.getOrDefault(after, 0)+3);

}

}

if(map.getOrDefault("T",0)>map.getOrDefault("R",0)) {

answer+="T";

}else {

answer+="R";

}

if(map.getOrDefault("F",0)>map.getOrDefault("C",0)) {

answer+="F";

}else {

answer+="C";

}

if(map.getOrDefault("M",0)>map.getOrDefault("J",0)) {

answer+="M";

}else {

answer+="J";

}

if(map.getOrDefault("N",0)>map.getOrDefault("A",0)) {

answer+="N";

}else {

answer+="A";

}

 

return answer;

}

map에 각 유형과 점수를 저장한다. 

점수가 같으면 사전순으로 빠른 유형이 answer에 더해진다.