Level 2

    Programmers / Level 2 / 괄호 변환 / JS

    프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr /** * 올바른 괄호 문자열인지 판단해서 boolean 값으로 반환하는 함수 * * @param {string} str 괄호 문자열 * @returns {boolean} */ function isValid(str) { let cnt = 0; for (let i = 0; i < str.length; i += 1) { cur = str[i]; if (cur === '(') { cnt += 1; } else { cnt -= 1; } if (cnt < 0) return false; } retu..

    Programmers / Level 2 / 수식 최대화 / JS

    프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr function getOperatorPermutationList(OP_LIST, num) { let result = []; if (num === 1) return OP_LIST.map((el) => [el]); OP_LIST.forEach((fixed, idx) => { let rest = [...OP_LIST.slice(0, idx), ...OP_LIST.slice(idx + 1)]; let permutationList = getOperatorPermutationList(rest, nu..

    Programmers / Level 2 / 삼각 달팽이 / JS

    프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr function solution(n) { let matrix = Array.from({ length: n }, () => new Array(n).fill(0)); let currentNumber = 1; let [row, col] = [-1, 0]; for (let i = 0; i < n; i += 1) { for (let j = i; j < n; j += 1) { if (i % 3 === 0) row += 1; if (i % 3 === 1) col += 1; if (i % 3 === 2..

    Programmers / Level 2 / 모음사전 / JS

    프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr function solution(word) { let result = 0; const ALPHABET_LIST = ['A', 'E', 'I', 'O', 'U']; const COUNT_TO_CHANGE_LIST = [781, 156, 31, 6, 1]; result = word.split('').reduce((acc, cur, idx) => { return acc + ALPHABET_LIST.indexOf(cur) * COUNT_TO_CHANGE_LIST.at(idx) + 1; }, 0)..

    Programmers / Level 2 / 방문 길이 / JS

    프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr function isValidPosition(x, y) { if(x 5) return false; if(y 5) return false; return true; } function solution(dirs) { let result = ''; let routeSet = new Set(); let [curX, curY] = [0, 0]; const moveObj = { U: [0, 1], D: [0, -1], L: [-1, 0], R: [1, 0],..

    Programmers / Level 2 / 할인 행사 / JS

    프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr /** * 원하는 제품명과 제품수량들이 담긴 각각의 리스트를 받아서 * key:제품명, value:제품수량을 가지는 Map으로 초기화 하는 함수 * * @param {string[]} want 원하는 제품명들이 담긴 리스트 * @param {number[]} number 원하는 제품수량들이 담긴 리스트 * @param {Map} wantCountMap 초기화할 Map */ function initWantCountObject(want, number, wantCountMap) { const ..