https://programmers.co.kr/learn/courses/30/parts/12230
function solution(answers) {
let answer = [0,0,0];
const 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 result=[]
answers.map((t,index)=>{
for(var i=0;i<3;i++){
t===students[i][index%students[i].length] && answer[i]++;
}
})
let max = answer.reduce((acc,cur)=>acc>cur ? acc : cur)
answer.map((ans,i)=>ans===max && result.push(i+1))
return result
}
https://velog.io/@wkahd01/소수찾기
function solution(numbers) {
// numbers 쪼개기
numbers = numbers.split('')
let answer = [];
// 순열을 통한 결과값 구하기
function permutation(arr, selectNum) {
let result = [];
if (selectNum === 1) return arr.map((v) => [v]);
arr.forEach((v, idx, arr) => {
const fixer = v;
const restArr = arr.filter((_, index) => index !== idx);
const permuationArr = permutation(restArr, selectNum - 1);
let combineFixer = permuationArr.map((v) => [fixer, ...v]);
result.push(...combineFixer);
});
return result;
}
//
let piece = []
for(var i=1;i<=numbers.length;i++){
piece .push(permutation(numbers,i))
}
// 순열로 나온 경우의 '문자 배열'들을 '숫자'로 바꾸어주는 작업
for(var i=0;i<piece .length;i++){
for(var j=0;j<piece [i].length;j++){
answer.push(Number(piece [i][j].join('')))
}
}
let max = answer.reduce((acc,cur)=>acc>cur?acc:cur)
// 소수 구하기(에라토스테네스의 체)
let primeNumbers= new Array(max+1).fill(true);
for (let i = 0; i * i <= max+1; i += 1) {
i<2 && (primeNumbers[i]=false)
if (primeNumbers[i]) {
for (let j = i * i; j <= max+1; j += i) {
primeNumbers[j] = false;
}
}
}
// 구한 값이 소수인지 확인하는 작업
answer=answer.filter(a=> primeNumbers[a]===true)
// 중복 값 제거, 뒤늦게 넣어준 이유는 set 상태에서 여러 메서드들 사용 불가하기 때문에
answer=new Set(answer)
return answer.size
}
function solution(brown, yellow) {
let yellowSqrt = Math.floor(Math.sqrt(yellow));
for(let i=1;i<=yellowSqrt;i++){
for(let j=yellow;j>=1;j--){
if(i*j===yellow){
if(brown === (i*2+j*2+4)){
return [j+2,i+2]
}
}
}
}
}