본문 바로가기

728x90

Algorithm

[NodeJS] 프로그래머스 크레인 인형뽑기 게임 /** * @link https://school.programmers.co.kr/learn/courses/30/lessons/64061 * @description */ const solution = (board, moves) => { const stack = []; let answer = 0; for (let m of moves) { m--; for (let i = 0; i < board.length; i++) { const o1 = board[i][m]; if (!o1) { continue; } else { board[i][m] = 0; const o2 = stack.pop(); if (!o2) { stack.push(o1); } else if (o1 === o2) { answer += 2; } els.. 더보기
[NodeJS] 프로그래머스 124 나라의 숫자 /** * @link https://school.programmers.co.kr/learn/courses/30/lessons/12899 */ const solution = (n) => { let answer = ''; const nums = [4, 1, 2]; /** * n을 3으로 나눈 나머지가 * 0일때는 4 * 1일때는 1 * 2일때는 2를 넣어준다 * 나머지가 0이라면 몫에서 1일 빼준다 */ while (n) { const r = n % 3; // 나머지 const q = Math.floor(n / 3); // 몫 answer = `${nums[r]}${answer}`; n = r === 0 ? q - 1 : q; } return answer; }; 더보기
[NodeJS] 프로그래머스 키패드 누르기 /** * @link https://school.programmers.co.kr/learn/courses/30/lessons/67256?language=javascript */ const solution = (nums, hand) => { let answer = ''; const handNumMap = { left: 10, right: 11, }; const leftNums = [1, 4, 7]; const rightNums = [3, 6, 9]; const numsPosition = [ [1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 0, 11], ]; const updateAnswer = (num, h) => { handNumMap[h] = num; answer += h === '.. 더보기
[NodeJS] 프로그래머스 멀쩡한 사각형 const solution = (w, h) => { const totalCnt = w * h; const getGcd = (n1, n2) => { if (n2 === 0) { return n1; } return getGcd(n2, n1 % n2); }; const gcd = getGcd(w, h); return totalCnt - (w + h - gcd); }; 더보기
[NodeJS] 프로그래머스 숫자 문자열과 영단어 /** * @link https://school.programmers.co.kr/learn/courses/30/lessons/81301 */ const solution = (str) => { let answer = ''; const map = { ze: [0, 4], on: [1, 3], tw: [2, 3], th: [3, 5], fo: [4, 4], fi: [5, 4], si: [6, 3], se: [7, 5], ei: [8, 5], ni: [9, 4], }; while (str.length > 0) { const char = str[0]; if (!Number.isNaN(Number(char))) { answer += char; str = str.substring(1); } else { const [.. 더보기
[NodeJS] 프로그래머스 오픈 채팅방 const solution = (record) => { const msg = []; const map = {}; for (let i = 0; i `${map[id]}${str}`); }; 더보기
[NodeJS] 프로그래머스 신규 아이디 추천 /** * @link https://school.programmers.co.kr/learn/courses/30/lessons/72410 */ const solution = (new_id) => { const step1 = (s) => { return s.toLowerCase(); }; const step2 = (str) => { let result = ''; for (const s of str) { const code = s.charCodeAt(); let isAdd = false; if ([45, 46, 95].includes(code)) { isAdd = true; } else if (97 { if (15 < str.length) { return step4(str.substring(0, 15)); }.. 더보기
[NodeJS] 프로그래머스 로또의 최고 순위와 최저 순위 /** * @link https://school.programmers.co.kr/learn/courses/30/lessons/77484 */ const solution = (lottos, win_nums) => { const ranking = { 6: 1, 5: 2, 4: 3, 3: 4, 2: 5, 1: 6, 0: 6, }; const { zeroCnt, winCnt } = lottos.reduce( (obj, curVal) => { if (curVal === 0) { obj.zeroCnt++; } else if (win_nums.includes(curVal)) { obj.winCnt++; } return obj; }, { zeroCnt: 0, winCnt: 0, }, ); return [ranking[.. 더보기

728x90