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

    [프로그래머스 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..

    [프로그래머스 Level 2] 주차 요금 계산 - JavaScript

    [프로그래머스 Level 2] 주차 요금 계산 - JavaScript

    🔗 문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/92341 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr ✏️ 풀이 function solution(fees, records) { const [BASIC_TIME, BASIC_FEE, UNIT_TIME, UNIT_FEE] = fees; const AUTO_OUT_TIME = 60 * 24 - 1; const parkInfo = {}; records.forEach(str => { const strings = str.split(' '); co..

    [프로그래머스 Level 2] 타겟 넘버 - JavaScript

    [프로그래머스 Level 2] 타겟 넘버 - JavaScript

    🔗 문제 링크 https://programmers.co.kr/learn/courses/30/lessons/43165 코딩테스트 연습 - 타겟 넘버 n개의 음이 아닌 정수들이 있습니다. 이 정수들을 순서를 바꾸지 않고 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 programmers.co.kr ✏️ 풀이 function solution(numbers, target) { const dfs = (index, sum) => { if (index === numbers.length) { if (sum === target) { return 1; } return 0; } const plus = dfs(index + 1, sum..