본문 바로가기

728x90

Algorithm/programmers

[NodeJS] 프로그래머스 괄호 변환 const solution = (p) => { const getBalancedString = (s) => { let o = 0; let c = 0; for (let i = 0; i { const stack = []; for (let i = 0; i < s.length; i++) { if (s[i] === '(') { stack.push('('); } els.. 더보기
[NodeJS] 프로그래머스 타켓 넘버 const solution = (nums, target) => { let answer = 0; const sum = (v1, v2, s) => { if (s === 'p') { return v1 + v2; } else { return v1 - v2; } }; const recursive = (ns, v) => { if (ns.length === 0) { if (v === target) { answer++; } return; } const [v2, ...newNs] = ns; recursive(newNs, sum(v, v2, 'p')); recursive(newNs, sum(v, v2, 'm')); }; const [v, ...arr] = nums; recursive(arr, v); recursive(ar.. 더보기
[NodeJS] 프로그래머스 1차 뉴스 클러스터링 const solution = (p) => { const getBalancedString = (s) => { let o = 0; let c = 0; for (let i = 0; i { const stack = []; for (let i = 0; i < s.length; i++) { if (s[i] === '(') { stack.push('('); } els.. 더보기
[NodeJS] 프로그래머스 짝지어 제거하기 const solution = (s) => { const stack = [s[0]]; for (let i = 1; i < s.length; i++) { if (stack[stack.length - 1] !== s[i]) { stack.push(s[i]); } else { stack.pop(); } } return stack.length ? 0 : 1; }; 더보기
[NodeJS] 프로그래머스 소수 찾기 const solution = (nums) => { let answer = 0; const set = new Set(); const recursive = (n, s, len) => { if (s.length === len) { const num = Number(s); if (num > 1) { set.add(num); } return; } for (let i = 0; i < n.length; i++) { const newS = n.substring(0, i) + n.substring(i + 1); recursive(newS, `${s}${n[i]}`, len); } }; for (let i = 1; i 더보기
[NodeJS] 프로그래머스 메뉴 리뉴얼 const solution = (orders, course) => { const answer = []; const recursive = (obj, order, cnt, idx, prev) => { if (prev.length === cnt) { const str = prev.sort().join(''); obj[str] = obj[str] ? [str, obj[str][1] + 1] : [str, 1]; } for (let i = idx; i { const menu = {}; orders.forEach((o) => {.. 더보기
[NodeJS] 프로그래머스 두 큐 합 같게 만들기 const solution = (q1, q2) => { const arr = [...q1, ...q2]; const loopCnt = arr.length * 4; const getSum = (arr) => arr.reduce((pre, cur) => pre + cur); let sum = getSum(arr); if (sum % 2 !== 0) { return -1; } const v = sum / 2; let calcSum = getSum(q1); let cnt = 0; let s = 0; let e = q1.length; while (cnt < loopCnt) { if (calcSum === v) { return cnt; } else if (v < calcSum) { calcSum -= arr[s];.. 더보기
[NodeJS] 프로그래머스 H-index const solution = (citations) => { const len = citations.length; if (len === 1) { return citations[0] === 1 ? 1 : 0; } let answer = 0; citations.sort((a, b) => b - a); while (answer + 1 더보기

728x90