본문 바로가기

programming study/Algorithm

(275)
[프로그래머스] 프린터 - JavaScript 풀이(개선된 풀이) 본 게시물은 프로그래머스의 연습 문제 풀이입니다. 저작권은 (주) 그랩에게 있습니다 자바스크립트 코드 class Queue { constructor() { this.queue = []; this.front = 0; this.rear = 0; } enqueue(value) { this.queue[this.rear] = value; this.rear += 1; } dequeue() { const value = this.queue[this.front]; delete this.queue[this.front]; this.front += 1; return value; } peek() { return this.queue[this.front]; } } ​ function solution(priorities, locat..
[프로그래머스] 올바른 괄호 - JavaScript 풀이(개선된 풀이) 본 게시물은 프로그래머스의 연습 문제 풀이입니다. 저작권은 (주) 그랩에게 있습니다 자바스크립트 코드 function solution(s){ const braketArray = []; for (let i = 0; i
[프로그래머스] 땅따먹기 - JavaScript 풀이 본 게시물은 프로그래머스의 연습 문제 풀이입니다. 저작권은 (주) 그랩에게 있습니다 자바스크립트 코드(나의 풀이) function solution(land) { return Math.max(...land.reduce((acc, row) => { return [ row[0] + Math.max(acc[1], acc[2], acc[3]), row[1] + Math.max(acc[0], acc[2], acc[3]), row[2] + Math.max(acc[0], acc[1], acc[3]), row[3] + Math.max(acc[0], acc[1], acc[2]) ] }, [0, 0, 0, 0])); } Reference 프로그래머스
[Codility] BinaryGap - JavaScript 풀이 본 게시물은 Codility의 문제 풀이입니다. 자바스크립트 코드(나의 풀이) function solution(number) { // 1. 주어진 수 2진수 변환 const binaryNumber = number.toString(2); // 2. 1을 기준으로 잘라내기 const slicedNumber = binaryNumber.slice(binaryNumber.indexOf('1'), binaryNumber.lastIndexOf('1')); // 3. 1을 기준으로 배열로 나누기 const convertedNumber = slicedNumber.split('1'); console.log(convertedNumber); // 4. 길이가 가장 긴 요소가 최대 길이 const longestBinaryGap..
[프로그래머스] 스킬트리 - JavaScript 풀이 본 게시물은 프로그래머스의 연습 문제 풀이입니다. 저작권은 (주) 그랩에게 있습니다 자바스크립트 코드(나의 풀이) function solution(skill, skill_trees) { let answer = 0; // skill_trees 순회 for (let i = 0; i
[프로그래머스] 2 x n 타일링 - JavaScript 풀이 본 게시물은 프로그래머스의 연습 문제 풀이입니다. 저작권은 (주) 그랩에게 있습니다 자바스크립트 코드(나의 풀이) const memo = { 1: 1, 2: 2, 3: 3, 4: 5, } ​ function solution(n) { if (memo[n]) { return memo[n]; } for (let i = 5; i
[프로그래머스] 숫자의 표현 - JavaScript 풀이 본 게시물은 프로그래머스의 연습 문제 풀이입니다. 저작권은 (주) 그랩에게 있습니다 자바스크립트 코드(나의 풀이) function solution(n) { var answer = 0; // n까지의 연속한 숫자를 가지는 배열 const numberArray = new Array(n).fill(0).map((_, index) => index + 1); // 연속한 자연수로 n을 표현할 방법 찾기 let startIndex = n - 1; while (startIndex >= 0) { let sum = 0; for (let i = startIndex; i >= 0; i--) { sum += numberArray[i]; if (sum === n) { answer += 1; } if (sum > n) { bre..
[프로그래머스] n^2 배열 자르기 - JavaScript 풀이 본 게시물은 프로그래머스의 연습 문제 풀이입니다. 저작권은 (주) 그랩에게 있습니다 자바스크립트 코드(나의 풀이) function solution(n, left, right) { // n * n 만큼 길이를 가지는 1차원 배열을 초기화 const array = []; const startRow = parseInt(left / n) + 1; const endRow = parseInt(right / n) + 1; const startCol = parseInt(left - ((startRow - 1) * n)); const endCol = parseInt(right - ((startRow - 1) * n)); ​ ​ console.log(startRow, endRow, startCol, endCol); for..