공부해야할것
나중에 공부해보면 좋을만한 것들 21.06.07
1) React Redux 21.06.12 토 ~ 06.13 일(HA끝나고 여유있으면 주말에 몰아서 공부 ㄱㄱ)
2) jQuery
function solution(answers) {
// 1번 수포자가 찍는 방식
// 1, 2, 3, 4, 5
// 2번 수포자가 찍는 방식
// 2, 1, 2, 3, 2, 4, 2, 5
// 3번 수포자가 찍는 방식
// 3, 3, 1, 1, 2, 2, 4, 4, 5, 5
let arrTemp = [];
let resultArr = [1, 2, 3];
let strTemp = '';
let temp = 0;
let rangkingTemp = 0;
const num_type = [
[1, 2, 3, 4, 5],
[2, 1, 2, 3, 2, 4, 2, 5],
[3, 3, 1, 1, 2, 2, 4, 4, 5, 5]
];
for(let i = 0; i < 3; i++){
strTemp = num_type[i].join('');
for(let j = 0; j < answers.length; j++){
arrTemp.push(strTemp[j]);
}
num_type[i] = arrTemp.slice(0,answers.length);
arrTemp = [];
num_type[i].push(0); // count를 위한
}
for(let i = 0; i < 3; i++){
for(let j = 0; j < answers.length; j++){
if(Number(num_type[i][j]) === answers[j]){
num_type[i][num_type[i].length-1] += 1;
}
}
}
temp = num_type[0][num_type[0].length-1];
rangkingTemp = resultArr[0];
for(let i = 1; i < 3; i++){
if(temp < num_type[i][num_type[i].length-1]){
strTemp = rangkingTemp;
rangkingTemp = resultArr[i];
resultArr[i] = strTemp;
temp = num_type[i][num_type[i].length-1];
}
}
if(num_type[0][num_type[0].length-1] === num_type[1][num_type[1].length-1]
&& num_type[0][num_type[0].length-1] === num_type[2][num_type[2].length-1]
&& num_type[1][num_type[1].length-1] === num_type[2][num_type[2].length-1]){
return resultArr;
}else{
return [resultArr[0]];
}
}
이 코드가
const solution = (answers) => {
let students = [[1,2,3,4,5],[2,1,2,3,2,4,2,5],[3,3,1,1,2,2,4,4,5,5]];
let answer = [];
for(let student of students) {
answer.push(answers.reduce((acc,cur,idx) => (cur==student[idx % student.length] ? acc++ : acc,acc),0))
}
return answer.reduce((acc,cur,idx) => (cur === Math.max(...answer) ? acc.push(idx+1) : acc,acc),[])
}
이렇게 짧아질 수 있다니.. 공부를 해봐야겠다.
생각보더 코딩테스트에서 map, reduce, filter가 많이 사용되는 것 같다. 친숙해지자.
다른 블로그를 본 코드
function solution(answers) {
let answ = [];
// 1번 수포자가 찍는 방식
// 1, 2, 3, 4, 5
// 2번 수포자가 찍는 방식
// 2, 1, 2, 3, 2, 4, 2, 5
// 3번 수포자가 찍는 방식
// 3, 3, 1, 1, 2, 2, 4, 4, 5, 5
let a1 = [1, 2, 3, 4, 5];
let a2 = [2, 1, 2, 3, 2, 4, 2, 5];
let a3 = [3, 3, 1, 1, 2, 2, 4, 4, 5, 5];
let an1 = answers.filter((a, index) => a === a1[index%5]).length;
let an2 = answers.filter((a, index) => a === a2[index%8]).length;
let an3= answers.filter((a, index) => a === a3[index%10]).length;
let max = Math.max(an1, an2, an3);
if(max === an1){answ.push(1)};
if(max === an2){answ.push(2)};
if(max === an3){answ.push(3)};
return answ;
}
Author And Source
이 문제에 관하여(공부해야할것), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@juho00ng/공부해야할것저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)