문제 (프로그래머스 118666 : 성격 유형 검사하기)
181943 : 성격 유형 검사하기
별도 문제 설명 생략
Math.abs(chocies[i]-4)
import java.util.*;
class Solution {
public String solution(String[] survey, int[] choices) {
// 총 길이
int n = survey.length;
String answer = "";
// 답변을 넣을 map
Map<Character, Integer> scores = new HashMap<>();
scores.put('R', 0);
scores.put('T', 0);
scores.put('C', 0);
scores.put('F', 0);
scores.put('J', 0);
scores.put('M', 0);
scores.put('A', 0);
scores.put('N', 0);
// survey를 돌면서 점수 추가하기
for(int i = 0; i<n; i++){
char c1 = survey[i].charAt(0);
char c2 = survey[i].charAt(1);
int choice = choices[i];
if(choice < 4){
scores.put(c1, scores.get(c1)+(4-choice));
}else{
scores.put(c2, scores.get(c2)+(choice-4));
}
}
// RT, CF, JM, AN 끼리 값 비교해서 answer에 추가
answer += (scores.get('R') >= scores.get('T'))? "R" : "T";
answer += (scores.get('C') >= scores.get('F'))? "C" : "F";
answer += (scores.get('J') >= scores.get('M'))? "J" : "M";
answer += (scores.get('A') >= scores.get('N'))? "A" : "N";
return answer;
}
}
https://school.programmers.co.kr/learn/courses/30/lessons/118666/solution_groups?language=java - 이종한님 코드..
나도 문자가 나눠져있어서 case로 처리할수도있겠다는 생각을 했었는데.. 다들 한번씩 봐보길 바란다..
⇒ 극한의 case…