연습장/프로그래머스 문제풀이

    [프로그래머스 Level 2] 야간 전술보행 - JavaScript

    [프로그래머스 Level 2] 야간 전술보행 - JavaScript

    🔗 문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/133501 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr ✏️ 풀이 function solution(distance, scope, times) { const guard = scope .map((v, i) => ({ scope: v.sort((a, b) => a - b), time: times[i] })) .sort((a, b) => a.scope[0] - b.scope[0]); let i = guard[0].scope[0]; let j ..

    [프로그래머스 Level 3] 최고의 집합 - JavaScript

    [프로그래머스 Level 3] 최고의 집합 - JavaScript

    🔗 문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/12938 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr ✏️ 풀이 function solution(n, s) { const quotient = Math.floor(s / n); const remainder = s - quotient * n; return quotient ? [...Array(n - remainder).fill(quotient), ...Array(remainder).fill(quotient + 1)] : [-1]; } 최고..

    [프로그래머스 Level 3] 불량 사용자 - JavaScript

    [프로그래머스 Level 3] 불량 사용자 - JavaScript

    🔗 문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/64064 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr ✏️ 풀이 function solution(user_id, banned_id) { const selected = Array(user_id.length).fill(false); const regex = banned_id.map(id => new RegExp(`^${id.replaceAll('*', '.')}$`)); const set = new Set(); const dfs = (in..

    [프로그래머스 Level 2] 후보키 - JavaScript

    [프로그래머스 Level 2] 후보키 - JavaScript

    🔗 문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/42890 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr ✏️ 풀이 function solution(relation) { const rowLen = relation.length; const colLen = relation[0].length; let answer = 0; const bfs = () => { const queue = [...Array(colLen)].map((_, i) => [i]); const candidate = []; w..

    [프로그래머스 Level 2] 두 큐 합 같게 만들기 - JavaScript

    [프로그래머스 Level 2] 두 큐 합 같게 만들기 - JavaScript

    🔗 문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/118667 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr ✏️ 풀이 function solution(queue1, queue2) { class Node { constructor(value) { this.value = value; this.next = null; } } class Queue { constructor(arr) { this.head = null; this.tail = null; this.sum = 0; arr.forEach(e..

    [프로그래머스 Level 2] 행렬 테두리 회전하기 - JavaScript

    [프로그래머스 Level 2] 행렬 테두리 회전하기 - JavaScript

    🔗 문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/77485 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr ✏️ 풀이 function solution(rows, columns, queries) { const matrix = [...Array(rows)] .map((_, row) => [...Array(columns)].map((_, col) => row * columns + col + 1)); const result = []; const rotate = (query) => { const ..

    [프로그래머스 Level 2] 수식 최대화 - JavaScript

    [프로그래머스 Level 2] 수식 최대화 - JavaScript

    🔗 문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/67257 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr ✏️ 풀이 function solution(expression) { const calculate = (expression, operator) => { const regex = new RegExp(`-?\\d+(\\${operator}-?\\d+)+`, 'g'); return expression.replace(regex, (match) => eval(match.replaceAll('#..

    [프로그래머스 Level 2] 괄호 변환 - JavaScript

    [프로그래머스 Level 2] 괄호 변환 - JavaScript

    🔗 문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/60058 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr ✏️ 풀이 function solution(p) { // 균형잡힌 괄호 문자열 판독 const checkBalance = (w) => { let balance = 0; for (const str of w) { if (str === '(') { balance++; } else { balance--; } if (balance < 0) { return false; } } return tr..

    [프로그래머스 Level 2] 메뉴 리뉴얼 - JavaScript

    [프로그래머스 Level 2] 메뉴 리뉴얼 - JavaScript

    🔗 문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/72411 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr ✏️ 풀이 function solution(orders, course) { // orders를 순회하면서 코스요리 메뉴 후보 정보를 저장할 객체 const candidates = {}; // 주문과 코스요리의 메뉴 개수가 주어지면 // candidates에 현재 주문에서 만들 수 있는 모든 코스요리에 대해 주문 수를 갱신 const dfs = (order, maxLength, can..

    [프로그래머스 Level 2] 튜플 - JavaScript

    [프로그래머스 Level 2] 튜플 - JavaScript

    🔗 문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/64065 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr ✏️ 풀이 function solution(s) { return s .match(/\{(\d+,)*\d+\}/g) .map(set => set.slice(1, -1).split(',').map(Number)) .sort((a, b) => a.length - b.length) .map((cur, index, arr) => index ? cur.find(elem => !arr[index..