Level 2

    Programmers / Level 2 / 연속 부분 수열 합의 개수 / JS

    프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr function solution(elements) { const ELEMENTS_LEN = elements.length; let sumSet = new Set(); let [start, end] = [0, 0]; for (let i = 1; i

    Programmers / Level 2 / [3차] 압축 / JS

    프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr let dictionary = new Map(); /** * A:1, B:1, ... , Z:26 으로 사전을 초기화하는 함수 */ function initDictionary() { let alphabetList = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'.split(''); alphabetList.forEach((el, idx) => { dictionary.set(el, idx + 1); }); } /** * 사전을 계속 업데이트 하면서 결과값을 반환하는 함수 * * @par..

    Programmers / Level 2 / 귤 고르기 / JS

    프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr function solution(k, tangerine) { let tangerineKindCountObj = {}; tangerine.forEach((el) => { tangerineKindCountObj[el] = tangerineKindCountObj[el] + 1 || 1; }); let tangerineCountList = Object.values(tangerineKindCountObj); tangerineCountList.sort((a, b) => b - a); let cnt ..

    Programmers / Level 2 / 2 x n 타일링 / JS

    프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr function solution(n) { const DIVISOR = 1e9 + 7; let dp = [0, 1, 2]; for(let i=3; i

    Programmers / Level 2 / 메뉴 리뉴얼 / JS

    프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr /** * num개로 이루어진 가능한 모든 조합을 반환하는 함수 * * @param {string[]} order * @param {number[]} num 조합을 이룰 order의 개수 * @returns */ function getCombination(order, num) { let result = []; if (num === 1) return order.map((el) => [el]); order.forEach((fixed, idx) => { let rest = order.slice..

    Programmers / Level 2 / 피로도 / JS

    프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr function solution(k, dungeons) { let visited = Array.from({ length: dungeons.length }, () => false); let clearedCnt = 0; const DFS = (k, currentCnt) => { clearedCnt = Math.max(currentCnt, clearedCnt); for(let i=0; i= minRequiredFatigue && !visited[i]) { visited[i] = true; DF..