티스토리 뷰
2022.11.30
프로그래머스 스쿨 Lv01. 성격유형검사하기
🚀 문제 파악
*성격 유형 검사는 아래 4개 지표로 성격 유형 구분
**1번 R형,T형 / 2번 C형,F형 / 3번 J형,M형 / 4번 A형,N형
*성격 유형은 총 16가지
*n개의 질문, 질문에는 7가지 선택지
*질문이 NA이라면 비동의는 N, 동의는 A에 대한 점수를 갖는다
*질문이 AN이라면 비동의는 A, 동의는 N에 대한 점수를 갖는다
*질문이 AN이라면 선택 결과에 따라 아래와 같이 점수가 부여된다
**매우 비동의(N3점)
**비동의(N2점)
**약간 비동의(N1점)
**모르겠음(-)
**약간 동의(A1점)
**동의(A2점)
**매우 동의(A3점)
🚀 문제 해결
1. 선택지가 4보다 크거나 같은 지 확인한다
*4보다 크거나 같다면, now 변수에 문제 유형의 앞글자를 저장한다
*4보다 작다면, now변수에 문제 유형의 뒷글자를 저장한다
2. 선택지의 값이 key에 해당하는 score의 값을 result[now]에 더한다
3. 모든 선택지를 확인한 후, 성격 유형을 도출한다
*점수가 큰 성격유형을 도출한다
*점수가 같은 경우, 사전순으로 빠른 성격유형에 해당한다
🚀 통과 코드
function solution(survey, choices) {
var answer = '';
var result = { R:0, T:0, C:0, F:0, J:0, M:0, A:0, N:0 }
var score = { 1:3, 2:2, 3:1, 4:0, 5:1, 6:2, 7:3}
// 선택지 점수 확인
for(var i in survey){
if(choices[i] <= 4) now = survey[i][0];
else if(choices[i] > 4) now = survey[i][1];
result[now] += score[choices[i]];
}
// 점수 확인 후 성격 유형 도출
for(var i = 0; i < Object.keys(result).length; i++){
if(i % 2 != 0) continue;
if(result[Object.keys(result)[i]] >= result[Object.keys(result)[i+1]]){
answer+=Object.keys(result)[i];
}else {
answer+=Object.keys(result)[i+1];
}
}
return answer;
}
'🔥 해보자고 🔥' 카테고리의 다른 글
프로그래머스 스쿨 Lv01. 문자열 나누기 (0) | 2022.12.06 |
---|---|
프로그래머스 스쿨 Lv01. 콜라 문제 (0) | 2022.12.01 |
프로그래머스 스쿨 Lv01. 햄버거 만들기 (0) | 2022.11.29 |
프로그래머스 스쿨 Lv01. 명예의 전당(1) (0) | 2022.11.28 |
프로그래머스 스쿨 Lv01. 푸드 파이트 대회 (0) | 2022.11.25 |
댓글