- 1, 2, 3 순서대로 N 길이의 수열을 만들기 - check 함수를 만드는 방식 let fs = require('fs'); let input = fs.readFileSync('/dev/stdin').toString().split(' '); const N = Number(input); let isOver = false recursive('1'); function check(num) { const length = num.length; for (let idx = 1; idx
const N = 4; const point = [ [0, 1, 2, 3], [4, 0, 5, 6], [7, 1, 0, 2], [3, 4, 5, 0], ]; const startTeam = []; let linkTeam = []; const half = N / 2; const visited = Array(N).fill(0); let min = Infinity; dfs(0); console.log(min); function dfs(index) { // 종료 조건, 원하는 데이터의 형태가 만들어 졌을 때. if (index === half) { let sumOfStartTeam = 0; let sumOfLinkTeam = 0; // 스타트팀에 속하지 않는 사람은 링크팀에 넣는다. for (let i = 1;..
문제의 설명을 그대로 코드로 옮겨보려고 해봤습니다. function solution(order) { let result = 0; let containerIndex = 0; let subContainerIndex = -1; let orderIndex = 0; const length = order.length; const container = Array.from({ length }, (_, i) => i + 1); const subContainer = []; while (true) { if (result === length) break; if (subContainer[subContainerIndex] === order[orderIndex]) { result += 1; subContainer.pop(); su..
문자열에서 0을 제거해주는 함수, 이진수로 표현해주는 함수 2개를 각각 만들어서 해결했습니다. function deleteZero(str) { let newStr = ''; let count = 0; for (let i = 0; i 1) { rest = rest + String(length % 2); length = Math.trunc(len..
처음에 이중 for문으로 풀이를 생각하였으나 효율성에서 통과하지 못하는 문제가 발생했습니다. 그 후에 stack 자료구조를 이용해서 해결하는 방법을 선택했습니다. function solution(numbers) { const result = Array.from({length: numbers.length}, () => -1); const stack = []; for (let i = 0; i 0 && numbers[stack.at(-1)] < numbers[i]){ result[stack.pop()] = numbers[i]; } stack.push(i); } return result; }