Loading...

[프로그래머스] 체육복 (javascript)

function solution(n, lost, reserve) { // 여분의 사람 중 잃어버린 사람 빼준다 const res=reserve.filter(r=>!lost.includes(r)); // 잃어버린 사람들 중에서도 여분의 옷을 가지고 있다면 빼준다 const los=lost.filter(l=>!reserve.includes(l)); for(let i=0;i

[프로그래머스] 모의고사 (javascript)

function solution(answers) { var answer = []; const one=[1,2,3,4,5]; const two=[2,1,2,3,2,4,2,5]; const three=[3,3,1,1,2,2,4,4,5,5]; //정답이 같은 것만 골라내서 길이를 구한다 const result1=answers.filter((answer,idx)=>answer===one[idx%one.length]).length; const result2=answers.filter((answer,idx)=>answer===two[idx%two.length]).length; const result3=answers.filter((answer,idx)=>answer===three[idx%three.length]).l..

[프로그래머스] 가장 큰 수 (javascript)

문자열 두 개를 순서를 뒤집어 보고 더 큰 수가 앞으로 가도록 내림정렬하면 된다 알고보면 아!하는데 떠올리기 힘든 문제.. 3과 30의 경우 330이 303보다 더 크다 문자열로 바꿔서 더해준다음 숫자 비교로 만들어준다. numbers로 0 이 여러개 들어오는 경우 00, 000, 0000이 되니 숫자로 변환해서 리턴해준다 function solution(numbers) { const answer=numbers.sort((a,b)=>{ let aa=a+''; let bb=b+''; return +(bb+aa)-Number(aa+bb); }); return answer[0]===0?'0':answer.join(''); }

[프로그래머스] 문자열 압축 (javascript)

문자를 1개로 자르는 것부터 최대 문자열/2의 길이까지 압축할 수 있다 압축을 못하는 경우도 넣어줘야 모든 케이스를 통과한다 자른 문자열의 앞과 뒤를 비교해서 다르면 지금까지 자른 문자열을 새로운 문자열에 더해준다 function solution(s) { var answer = [s.length]; // 압축이 안된 문자열도 넣어줘야 모든 테스트 통과함 let max_len=Math.floor(s.length/2); //압축할 수 있는 경우 최대 문자열/2 의 길이까지 // 자르는 길이 for(let i=1;i

[프로그래머스] 124 나라의 숫자 (javascript)

나머지가 0 일 때 4가 붙고 1일 때 1, 2일때 2가 붙는 것을 규칙성으로 알 수 있다. 몫이 문제인데 3의 배수가 예외를 만든다. 3의 몫이 1인데 0인 그룹에 넣고 싶고 6의 몫이 2인데 1인 그룹에 들어가야 규칙에 맞다. 1~3의 수의 경우 몫이 0이고 4~6은 몫이 1, 7~9는 몫이 2으로 만들고 싶다. 그렇게 하려면 각 수에서 1을 빼고 나눠주면 된다. (n-1)/3 숫자 몫 나머지 1 0 1 2 0 2 3 1 0 4 1 1 5 1 2 6 2 0 function solution(n) { var answer = ''; while(n>0){ if(n%3==0){ answer='4'+answer; n=n/3-1; }else if(n%3==1){ answer='1'+answer; n=Math.fl..

[프로그래머스] 스킬트리 (javascript)

스킬에 포함되지 않은 단어들을 제거한 후 순서가 맞나 확인하면 된다 function solution(skill, trees) { var answer = trees.length; const newTrees=trees.map(tree=>{ return tree.split('').filter(x=>skill.includes(x)); }) for(let i=0;i

[프로그래머스] 삼각 달팽이 (javascript)

삼각달팽이가 이동하는 방향을 아래쪽, 오른쪽, 왼쪽 대각선위로 반복하면서 이동한다 아래쪽: y값 증가 오른쪽: x값 증가 대각선 위 : x값 1감소, y값 1 감소 해당 방향으로 계속 이동하다가 끝에 다다르거나 이미 작성한 원소까지 도달해서 하는 시점이 방향을 새로 바꿀 시점이다. 방향 dir에서 +1하고 반복하기 위해 %연산자로 나눠준다. 달팽이 숫자를 보면 n일 때 1부터 n까지의 합인 n*(n+1)/2까지 이동하는 걸 볼 수 있다 따라서 해당 숫자까지 쓰면 종료시켜준다. 이차원 배열에 맞는 위치에 써준 뒤 내부 배열을 합쳐준다. function solution(n) { const xpos=[0,1,-1]; const ypos=[1,0,-1] const m=new Array(n); for(let i=..

[프로그래머스] 다리를 지나는 트럭 (javascript)

function solution(bridge_length, weight, truck_weights) { let time=[]; let cur_time=0; let sum=0; while(time.length || truck_weights.length){ // 터널에서 나갈 시간이 현재 시간과 같아면 다리 탈출 if(time.length && time[0].time===cur_time){ sum-=time[0].weight; time.shift(); } // 트럭이 더 들어갈 때 if(truck_weights.length && sum+truck_weights[0]

[프로그래머스] 프린터 (javascript)

2021. 03. 31 업데이트된 풀이 그냥 인덱스 위치를 담은 배열을 새로 만든다음에 비교해주면 된다. 기존 배열을 변형시킬 필요 없다. function solution(priorities, location) { var answer = 0; const q=Array(priorities.length).fill(0).map((_,i)=>i); while(q.length>0){ let max=Math.max(...priorities); let x=q.shift(); if(priorities[x]b-a); const sequence=[]; let idx=0; while(priorities){ // console.log(idx) if(priorities[idx]!==sorted_prior[0]){ idx=(id..