Programmers/Level 1

[Javascript] 프로그래머스 : 직업군 추천하기

emayom 2021. 8. 25. 11:33

 [Javascript] 프로그래머스 Level 1 _ 직업군 추천하기 (위클리챌린지 4주차)

 

👇🏻

Link_Click

 

 

👇🏻

시행착오
( + 코드를 작성하면서든 생각들.)


✏️ 제출 코드

 

function solution(table, languages, preference) {
const FIELD = ["SI", "CONTENTS", "HARDWARE", "PORTAL", "GAME"];
const separate = [];
const count = [];
let answer = [];
for(let i of table){
let temp = i.split(' ');
separate.push(temp.slice(1));
}
const LANGUAGES = languages.length;
separate.map((el) => {
let point = 0;
for(let i=0; i < LANGUAGES; i++){
let temp = el.indexOf(languages[i]);
(temp === -1)? point += 0 : point += (temp-5) * preference[i];
}
count.push(Math.abs(point));
});
const MAX = Math.max(...count);
count.forEach((el, index) => {
(el === MAX)? answer.push(FIELD[index]) : '';
});
return answer.sort((a,b) => (a > b)? 1 : -1).shift();;
}
function solution(table, languages, preference) {
const FIELD = ["SI", "CONTENTS", "HARDWARE", "PORTAL", "GAME"];
const separate = [];
//table -> 직업별 분류
table.map((i) => {
let temp = i.split(' ');
separate.push(temp.slice(1));
});
//점수 계산 (언어 선호도 x 직업군 언어 점수)
const count = [];
const LANGUAGES = languages.length;
separate.map((el) => {
let point = 0;
for(let i=0; i < LANGUAGES; i++){
let temp = el.indexOf(languages[i]);
(temp === -1)? point += 0 : point += (temp-5) * preference[i];
}
count.push(Math.abs(point));
});
//총합 가장 큰 직업군 -> 사전 순으로 빠른 직업군 리턴
const MAX = Math.max(...count);
let answer = [];
count.map((el, index) => {
(el === MAX)? answer.push(FIELD[index]) : '';
});
return answer.sort((a,b) => (a > b)? 1 : -1).shift();
}

 

 

+)

 

어제 풀었던 모의고사와 예전에 풀었던 문자열 마음대로 정렬하기 ? 가 모두 생각나는 문제였다,, !

다행히도 레벨 1에 해당하는 문제라 복잡해보여서 그렇지 실제로는 어렵지 않았다!

풀다보니 for문과 map()과 forEach()를 골고루 써봤다 ㅎㅎㅎㅎㅎ

통일했으면 보기가 조금 더 편했을 것 같다는 생각이 들어 코드를 정리하며 통일했다!

 

 


⚠️ 아래 내용은 모두 개인적인 참고 / 기록을 위한 용도입니다. 참고해주시고 편안하게 봐주세요 :)  ⚠️
***    혹시라도 잘못된 정보가 있다면  언제든지 알려주시면 감사하겠습니다  !    ***