FrontEnd/프로그래머스

    [JS] 공던지기

    k * 2 값을 구하면 해당 인덱스를 구할 수 있다. 실제로 인덱스는 배열의 길이까지밖에 없기 때문에 이를 배열길이로 나눠준 후, 나머지값이 k번째 사람이 던져 받는사람이 된다. 문제는 k번째 던진공을 받는 사람이 아닌, 던지는 사람이므로 이를 조정해주면 된다. function solution(numbers, k) { var answer = numbers[(k*2-2) % numbers.length]; return answer; }

    [JS] 2차원으로 만들기

    배열의 전체 개수가 n의 배수이므로 for문 2개를 활용해서 분리해주면 된다. [ 1, 2 , 3 , 4 , 5 ,6 ] 이고 n이 2라면 1 2 3 4 5 6 다음과 같은 작은 배열을 만들어주고 만들어 질때마다 합쳐주면 된다. function solution(num_list, n) { var answer = []; const len = num_list.length for( let i=0 ; i< len/n ; i++ ){ const tmp = [] for (let j=0 ; j

    [JS] 가위 바위 보

    모스부호와 비슷하게 이기는 경우를 저장해놓고 해당 값을 빼주었다. 어차피 숫자로 갑시 처리되어 있었기에 일반 인덱스를 활용했다. function solution(rsp) { const win = [5,0,0,0,0,2] var answer = [...rsp].map(el => win[el]).join(""); return answer; }

    [JS] 모음 제거

    a,e,i,o,u 가있는지 판별해서 있으면 제거해주기 때문에 filter를 사용해서 구현해줬다. filter는 배열에 사용할 수 있으므로 배열로 바꾼 후, filter를 거치고 나온 결과를 다시 문자열로 바꿔주었다. function solution(my_string) { var answer = [...my_string].filter(el => !["a","e","i","o","u"].includes(el)); return answer.join(""); }

    [JS] 개미 군단

    간단한 그리디 알고리즘이라 생각할 수 있는 문제이다. 장군개미 , 병정개미, 일개미 순으로 최대한 많이 넣을 수 있을만큼 넣게 하면 된다. function solution(hp) { const g_ant = parseInt(hp/5) const s_ant = parseInt( ( hp % 5 ) / 3) const o_ant = ( hp % 5 ) % 3 return g_ant + s_ant + o_ant }

    [JS] 진료순서 정하기

    처음에는 약간 복잡하게 생각했다. 우선 idx를 포함한 배열을 정렬한다. 그러면 그 배열에는 정렬되기전 idx값을 포함하기 때문에 새로운 배열을 만들어 그에따라 값을 넣어주었다. 즉 [3,76,24] 라면 [[3,0],[76,1],[24,2]] [[76,1],[24,2],[3,0]] 이란 배열을 얻게 되는데 해당 배열을 돌면서 1의 값을 배열 두번째에 넣어주고 2의 값을 배열 세번째에 넣어주고 3의 값을 배열 첫번째에 넣어주면 된다. function solution(emergency) { const e = emergency.map((el,idx) => [el,idx]) console.log(e) var e2 = e.sort((a,b) => b[0]-a[0]).map((el,idx) => [idx,el[1..