https://school.programmers.co.kr/learn/courses/30/lessons/118666?language=javascript
각각 유형 지표가 4가지밖에 되지 않아서 객체로 각 유형별로 관리하려고 했다
survey의 문자열에서 첫번째 유형과 두번째 유형을 분리한 후, choices에서 점수가 4점보다 낮으면 첫번째 유형에 점수를 주고, 4점보다 높으면 두번째 유형에 점수를 준다
완성된 객체를 [유형이름, 점수] 로 구성된 배열로 옮겨준다.
배열의 길이는 유형이 8가지라 8이고 2개씩 쌍으로 이루어져 4번만 순회하면 정답을 구할 수 있다.
function solution(survey, choices) {
var answer = '';
let table = {
R : 0,
T: 0,
C:0,
F:0,
J:0,
M:0,
A:0,
N:0
}
let len = survey.length; // 조사 문항 갯수
for(let i = 0; i<len; i++){
let first = survey[i][0];
let second = survey[i][1];
let score = choices[i];
if(score === 4) continue;
if(score < 4){
let get = 4-score;
table[first] += get;
}else{
table[second] += score - 4;
}
}
let arr = [['R',table['R']],
['T',table['T']],
['C',table['C']],
['F',table['F']],
['J',table['J']],
['M',table['M']],
['A',table['A']],
['N',table['N']]
];
for(let i = 0; i<8; i+=2){
if(arr[i][1] >= arr[i+1][1]){
answer+= arr[i][0];
}else{
answer+= arr[i+1][0];
}
}
return answer;
}