FrontEnd/프로그래머스

    [JS] 중복된 문자 제거

    filter와 indexOf를 활용하면 중복된문자를 제거할 수 있다. (Set 자료형을 사용해도 괜찮다) function solution(my_string) { var answer = [...my_string].filter((el,idx) => [...my_string].indexOf(el) === idx ).join(""); return answer; }

    소인수분해

    자기 수를 2부터 시작해서 나머지가 0이 안나올때까지 나누게 하는 방식으로 구현했다. 단, 2가 4번 나오더라도 1번만 들어갈 수 있도록 while문에서 나가는 조건일때 리스트에 push를 하도록 구현했다. function solution(n) { var answer = []; for (let i=2 ; i

    [JS] 팩토리얼

    최대 정수가 10이 나온다는 것에서 팩토리얼 10까지의 값을 미리 구해 둔 후, 이를 리스트에 담았다. 그리고 리스트를 순회하며 n보다 작다면 해당 인덱스를 활용해 n까지의 최대 팩토리얼을 구했다. const f = (n) => n === 1 ? 1 : n * f(n-1) function solution(n) { return new Array(10).fill().map((v,i) => f(i+1)).reduce((acc,cur,idx) => cur

    [JS] 합성수 찾기

    ㄴ문제를 보고 1~n까지의 수중에서 소수의 개수를 구한 후, 이를 빼면 어떨가란 생각을 했다. 에라토스테네스의 체 방식이 떠올라서 해당 방식으로 소수의 개수를 구한 후, 전체에서 빼 주었다. 배열을 2부터 n까지 잡기도 했고 n이 3이하면 답이 0이므로 이를 예외처리해주었다. function solution(n) { if (n i+2) let cnt = 0 while (lst.length > 0) { const tmp = lst.shift(); cnt ++; lst = lst.filter((el) => el%tmp !==0 ) } console.log(cnt) return n- cnt -1; }

    [JS] 주사위의 개수

    가로,세로,높이를 각각 주사위의 길이로 나눈 몫을 구한 후 이를 곱해주면 주사위의 총 개수를 구할 수 있다. function solution(box, n) { var answer = box.reduce((acc,cur) => acc * parseInt(cur/n),1); return answer; }

    [JS] 배열 회전시키기

    각 회전시키는 방향에 따라서 배열을 잘라서 붙여주었다. function solution(numbers, direction) { var answer = direction==="left" ? [...numbers.slice(1) , numbers[0]] : [numbers[numbers.length-1],...numbers.slice(0,numbers.length-1)]; return answer; }