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

👇🏻
시행착오
( + 코드를 작성하면서든 생각들.)
✏️ 제출 코드
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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();; | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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()를 골고루 써봤다 ㅎㅎㅎㅎㅎ
통일했으면 보기가 조금 더 편했을 것 같다는 생각이 들어 코드를 정리하며 통일했다!
⚠️ 아래 내용은 모두 개인적인 참고 / 기록을 위한 용도입니다. 참고해주시고 편안하게 봐주세요 :) ⚠️
*** 혹시라도 잘못된 정보가 있다면 언제든지 알려주시면 감사하겠습니다 ! ***
'Programmers > Level 1' 카테고리의 다른 글
[Javascript] 프로그래머스 : 모의고사 (0) | 2021.08.24 |
---|---|
[Javascript] 프로그래머스 : 3진법 뒤집기 (0) | 2021.08.17 |
[Javascript] 프로그래머스 : 시저 암호 (0) | 2021.08.17 |
[Javascript] 프로그래머스 : 음양 더하기 (0) | 2021.08.16 |
[Javascript] 프로그래머스 : 문자열 내 마음대로 정렬하기 (0) | 2021.08.16 |