반응형
이전 포스트의 파이썬, C++, Go 코드에 이어
프로그래머스 성격 유형 검사하기를 JS로 풀어보겠다.
2022년 카카오 인턴 코딩 테스트 출제 문제로
아직 프로그래머스에선 푼 사람이 많지 않다.
문제
레벨 1치고 문제가 좀 길다. 하지만 간단하다.
survey에 성격 유형 지표들이 들어있고
choices에 따라 survey의 유형에 값을 더해주고
4개의 분류에서 각각 값이 높은 지표를 리턴하면 된다.
구현
object를 먼저 초기화해준다.
survey와 choices의 개수가 같기 때문에
이 사이즈만큼 반복을 하고
object에 survey의 지표 중에 choices에 따라 선택하여 값을 더해준다.
그 후 object의 값을 비교하여 성격 유형 값에 추가해주고
성격유형을 리턴한다.
문제만 길지 간단한 문제라고 생각한다.
코드
function solution(survey, choices) {
let answer = '';
const score = [0,3,2,1,0,1,2,3];
let survelm = new Object();
['R','T', 'C','F', 'J','M', 'A','N'].forEach(item => survelm[item]=0);
for (let i=0; i<survey.length; i++) {
survelm[survey[i][parseInt(choices[i]/4)]] += score[choices[i]];
}
answer += survelm['R'] >= survelm['T'] ? 'R' : 'T';
answer += survelm['C'] >= survelm['F'] ? 'C' : 'F';
answer += survelm['J'] >= survelm['M'] ? 'J' : 'M';
answer += survelm['A'] >= survelm['N'] ? 'A' : 'N';
return answer;
}
약간의 트릭은 choices[i] /4 부분인데
index 4까지는 앞의 값, 그 이후는 뒤의 값을 보도록 한 것이다.
형 변환을 위해 parseInt로 처리해주었다.
나머지는 쉽게 이해할 수 있다.
다른 풀이
아직 신상문제라 그런지 좋은 코드가 보이지 않는다.
혹시 좋은 방법이 있다면 댓글로 알려주시면 감사하겠습니다.
반응형
'Coding Test > JavaScript' 카테고리의 다른 글
[프로그래머스] 나머지가 1이 되는 수 찾기 JavaScript Code (0) | 2022.08.23 |
---|---|
[프로그래머스] 2016년 JavaScript Code (0) | 2022.08.20 |
[프로그래머스] 약수의 개수와 덧셈 JavaScript Code (0) | 2022.08.17 |
[프로그래머스] K번째수 JavaScript Code (4) | 2022.08.16 |
[프로그래머스] 체육복 JavaScript Code (0) | 2022.08.10 |
댓글