목록알고리즘 (31)
개발의변화
문제 https://school.programmers.co.kr/learn/courses/30/lessons/178870 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 정답 function solution(sequence, k) { //정답이 될 수 있는 값을 담을 배열 var answer = []; var num = 0; var head = 0; for(var i = 0; ik){ while(sum>k){ num -= sequence[head++]; } } if( num===k){ answer.push([head,i]); } } var min = seq..
문제 https://school.programmers.co.kr/learn/courses/30/lessons/12936 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 답 //1,2,3,4 function solution(n, k) { function permutate (arr,x) { const result = [] if (x === 1) { return arr.map(e=>[e]) } arr.forEach((fixed,index,origin) =>{ const sub = [...arr.slice(0,index),...arr.slice(index+1)] ..
문제 https://school.programmers.co.kr/learn/courses/30/lessons/68645 해설 function solution(n) { //3*n-5 let arr= Array.from({length:n},(_,i)=>Array.from({length:i+1},()=>0)) //삼각형 배열 소환 let count = 0 let startY = 0 let startX = 0 let lastX = n-1 let lastY = 1 while (count= startX; i--) { if(arr[i][arr[i].length-lastY]===0) arr[i][arr[i].length-lastY]=++count }//오른족아래에서 위로 대가선 방향으로 이동하는 반복문 startX =..
문제 https://school.programmers.co.kr/learn/courses/30/lessons/42839 해설 function solution(numbers) { let question = new Set() let count = 0 function permutation(arr,n,result) { if (result.length==n) { question.add(Number(result.join(""))) return } for (let i = 0; i < arr.length; i++) { permutation([...arr.slice(0,i),...arr.slice(i+1)],n,[...result,arr[i]]) } } function searchDecimal(num) { if (num..
문제 https://school.programmers.co.kr/learn/courses/30/lessons/42883#qna 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해설 function solution(number, k) { let stack = []; let arr = number.split('').reverse(); //1924 ->> 4291 while(arr.length && k>0){ stack.push(arr.pop()) //4 3 2 3 while(stack[stack.length-1] 0..
문제 https://school.programmers.co.kr/learn/courses/30/lessons/12900 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해설 function solution(n) { let answer = 0; const dp = [1, 2]; for (let i = 0; i < n; i++) { dp.push((dp[i] + dp[i + 1]) % 1000000007); } return answer = dp[n - 1]; } Bottom-Top 형식으로 dynamic programming을 풀어내면 된다.
문제 https://school.programmers.co.kr/learn/courses/30/lessons/42583 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 답 function solution(bridge_length, weight, truck_weights) { let time = 0; let bridge = Array.from({length:bridge_length},()=>0) let totalWeight = 0 while(bridge.length>0) { time += 1 totalWeight -= bridge.shift() if (tru..
문제 https://school.programmers.co.kr/learn/courses/30/lessons/17679 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해설 function solution(m, n, board) { let curBoard = [...board.map(block => [...block])].concat(); let newBoard = [...board.map(block => [...block])].concat(); console.log(curBoard,newBoard) while (true) { let count = 0; f..