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

    [프로그래머스 Level 2] 짝지어 제거하기 - JavaScript

    [프로그래머스 Level 2] 짝지어 제거하기 - JavaScript

    🔗 문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/12973 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr ✏️ 풀이 function solution(s) { const stack = [s[0]]; for (let i = 1; i < s.length; i++) { if (s[i] === stack[stack.length - 1]) { stack.pop(); continue; } stack.push(s[i]); } return Number(!stack.length) } 스택 자료구조를 활용..

    [프로그래머스 Level 2] 이진 변환 반복하기 - JavaScript

    [프로그래머스 Level 2] 이진 변환 반복하기 - JavaScript

    🔗 문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/70129?language=javascript 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr ✏️ 풀이 function solution(s) { let count = 0; let deletedZero = 0; let x = s; while (x !== '1') { const prevLength = x.length; const curLength = x.replaceAll('0', '').length; x = curLength.toString..

    [프로그래머스 Level 2] 전력망을 둘로 나누기 - JavaScript

    [프로그래머스 Level 2] 전력망을 둘로 나누기 - JavaScript

    🔗 문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/86971 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr ✏️ 풀이 function solution(n, wires) { const graph = wires.reduce((acc, [start, end]) => { if (acc[start]) { acc[start].push(end); } else { acc[start] = [end]; } if (acc[end]) { acc[end].push(start); } else { acc[end] ..

    [프로그래머스 Level 2] 피로도 - JavaScript

    [프로그래머스 Level 2] 피로도 - JavaScript

    🔗 문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/87946 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr ✏️ 풀이 function solution(k, dungeons) { let maxCount = 0; const dfs = (fatigue, count, visited) => { let isEnd = true; for (let i = 0; i fatigue) { continu..

    [프로그래머스 Level 2] 할인 행사 - JavaScript

    [프로그래머스 Level 2] 할인 행사 - JavaScript

    🔗 문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/131127 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr ✏️ 풀이 function solution(want, number, discount) { const map = want.reduce((acc, v, i) => { acc.set(v, number[i]); return acc; }, new Map()); const check = () => { let flag = true; for (const [, count] of map) { if ..

    [프로그래머스 Level 2] 혼자 놀기의 달인 - JavaScript

    [프로그래머스 Level 2] 혼자 놀기의 달인 - JavaScript

    🔗 문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/131130 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr ✏️ 풀이 function solution(cards) { const openBoxes = (start, opened) => { let box = start; let count = 0; while (!opened[box]) { opened[box] = true; box = cards[box] - 1; count++; } return count; }; let maxScore = 0;..

    [프로그래머스 Level 2] 연속 부분 수열 합의 개수 - JavaScript

    [프로그래머스 Level 2] 연속 부분 수열 합의 개수 - JavaScript

    🔗 문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/131701 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr ✏️ 풀이 function solution(elements) { const set = new Set(); for (let i = 1; i elements.length) { seq = [...seq, ...elements.slice(0, i + j - elements.length)]; } const sum = seq.reduce((acc, v) => acc + v, 0); set.a..

    [프로그래머스 Level 2] 롤케이크 자르기 - JavaScript

    [프로그래머스 Level 2] 롤케이크 자르기 - JavaScript

    🔗 문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/132265 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr ✏️ 풀이 function solution(topping) { const left = {}; const right = topping.reduce((acc, v) => { acc[v] = (acc[v] ?? 0) + 1; return acc; }, {}); let leftCount = 0; let rightCount = new Set(topping).size; let answer =..

    [프로그래머스 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]; } 최고..