⚡문제정보
문제가 너무 길어서 다 보여드리진 않겠습니다.
궁금하신 분들은
https://school.programmers.co.kr/learn/courses/30/lessons/118666?language=javascript
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
아래링크 가서 직접 보세요..
문제 요약하면 이렇습니다
MBTI 검사 만들건데 동점이면 사전순으로 리턴하고
아니면 더 큰 점수를 갖고있는 애로 리턴해라
뭔소린지 모르시겠다고요..? 감사합니다.
🔍접근방법
객체에다가 각각의 점수를 담아줄 수 있도록 할겁니다.
그리고 계산하면 끝
🔍나의 풀이
function solution(survey, choices) {
let spliter = survey.map(ele => ele.split('') )
let obj = {
"R" : 0,
"T" : 0,
"C" : 0,
"F" : 0,
"J" : 0,
"M" : 0,
"A" : 0,
"N" : 0
}
let answer = ''
for(i=0 ; i<survey.length ; i++) {
if(choices[i] > 4) {
obj[spliter[i][1]] += Math.abs(4 - choices[i])
}
else if(choices[i] < 4) {
obj[spliter[i][0]] += Math.abs(4 - choices[i])
}
}
(obj["R"] >= obj["T"]) ? answer += "R" : answer += "T";
(obj["C"] >= obj["F"]) ? answer += "C" : answer += "F";
(obj["J"] >= obj["M"]) ? answer += "J" : answer += "M";
(obj["A"] >= obj["N"]) ? answer += "A" : answer += "N";
return answer
}
코드 해석은 다음과 같습니다.
function solution(survey, choices) {
let spliter = survey.map(ele => ele.split('') )
//map과 split을 이용해 survey를 이차원배열로 만들어주기
let obj = {
"R" : 0,
"T" : 0,
"C" : 0,
"F" : 0,
"J" : 0,
"M" : 0,
"A" : 0,
"N" : 0
}
//각 점수를 저장할 객체선언 그냥 빈객체로 선언하고
//그때그때 값을 집어넣어줘도 상관은 없을듯
let answer = ''
//정답을 반환할 변수
for(i=0 ; i<survey.length ; i++) {
if(choices[i] > 4) {
obj[spliter[i][1]] += Math.abs(4 - choices[i])
}
// 4를 기준으로 4보다 크면 뒷쪽유형에 +
else if(choices[i] < 4) {
obj[spliter[i][0]] += Math.abs(4 - choices[i])
}
// 4를 기준으로 4보다 작으면 앞쪽유형에 +
}
//Math.abs()는 절댓값을 구해주는 역할을 합니다. 4 - 7 = 3 , 4 - 1 = 3 이런식
(obj["R"] >= obj["T"]) ? answer += "R" : answer += "T";
(obj["C"] >= obj["F"]) ? answer += "C" : answer += "F";
(obj["J"] >= obj["M"]) ? answer += "J" : answer += "M";
(obj["A"] >= obj["N"]) ? answer += "A" : answer += "N";
//삼항연산자로 같은값이면 사전순 큰값이 있다면 큰값을 answer에 더해줌
return answer
// 반환
}
반응형
'programmers' 카테고리의 다른 글
[Programmers Level 1] 크기가 작은 부분 문자열 Javascript (0) | 2022.12.25 |
---|---|
[Programmers Level 2] 오픈채팅방 Javascript (1) | 2022.12.22 |
[Programmers Level 0] 가장 가까운 같은 글자 Javascript (0) | 2022.12.17 |
[Programmers Level 1 탐욕법] 체육복 Javascript (0) | 2022.12.16 |
[Programmers Level 2] 귤 고르기 Javascript (0) | 2022.12.15 |