본문 바로가기
반응형

알고리즘42

[백준] node.js/ 15649 N과 M 1 내 풀이 const fs = require('fs'); let [n, m] = (fs.readFileSync('./dev/stdin') + '').toString().trim().split(' '); let ans = []; let visit = new Array(parseInt(n)).fill(false); const back = (d, n, m) => { // m개의 원소까지 찼는지 확인 if (d === m) { console.log(...ans); return; } for (let i = 0; i < n; i++) { if (!visit[i]) { visit[i] = true; ans.push(i + 1); back(d + 1, n, m); ans.pop(); visit[i] = false; } .. 2021. 10. 20.
[백준] node.js/ 1302 베스트셀러 내 풀이 (정답) const fs = require('fs'); let input = (fs.readFileSync('./dev/stdin') + '').toString().trim().split('\n'); input.shift(); let bookDict = {}; input.map((book) => { if (!bookDict[book]) bookDict[book] = 1; else bookDict[book] += 1; }); const sortBook = Object.entries(bookDict) .sort(([aa, a], [bb, b]) => { if (a === b) { return aa < bb ? -1 : aa == bb ? 0 : 1; } return b - a; }) .reduce(.. 2021. 10. 19.
[백준] node.js/ 10866 덱 내 풀이 const fs = require('fs'); let input = (fs.readFileSync('./dev/stdin') + '').toString().trim().split('\n'); input.shift(); let queue = []; const cmdObj = { push_back: (x) => { queue.push(x); return ''; }, push_front: (x) => { queue.unshift(x); return ''; }, pop_front: () => queue.shift() || -1, pop_back: () => queue.pop() || -1, size: () => queue.length, empty: () => (queue[0] ? 0 : 1), fron.. 2021. 10. 18.
[백준] node.js/ 10828 스택 처음 풀이(시간초과) const fs = require('fs'); let input = (fs.readFileSync('./test') + '').toString().trim().split('\n'); input.shift(); let stack = []; input.map((cmd) => { const cmdArr = cmd.split(' '); const command = cmdArr[0]; switch (command) { case 'push': const number = cmdArr[1]; stack.push(parseInt(number)); break; case 'top': if (stack.length === 0) console.log(-1); else console.log(stack[sta.. 2021. 10. 15.
[백준] node.js/ 3986 좋은 단어 🛠 삽질들 1. 반씩 나눠서 하면 어떨까? AABB인경우 안맞음 let cnt = 0; let wordStack = []; for (let i = 0; i < n; i++) { const word = input[i]; if (word.length % 2 !== 0) continue; const halfLen = word.length / 2; const prevWord = word.slice(0, halfLen).split(''); const nextWord = word.slice(halfLen).split(''); for (let j = 0; j < halfLen; j++) { const next = nextWord[j]; const prev = prevWord[halfLen - 1 - j]; conso.. 2021. 10. 14.
[백준] node.js/ 2164 카드2 처음 풀이 (시간 초과) const fs = require('fs'); let input = (fs.readFileSync('./test') + '').toString().trim(); const numArr = Array.from({ length: parseInt(input) }, (v, i) => i + 1); while (numArr.length > 1) { numArr.shift(); numArr.push(numArr.shift()); } console.log(numArr[0]); 배열을 돌며 길이가 1이될때까지 1. 첫 번째 값 제거 2. 첫 번째 값 뒤로 붙이기 반복했지만... 시간초과 검색해 보니 배열의 push ,pop 을 이용하면 시간초과가 뜬다고 한다. 배열의 연산시간상 맨 앞 요소의 .. 2021. 10. 13.
[백준] node.js / 1158 요세푸스 문제 처음 풀이 const fs = require('fs'); let input = (fs.readFileSync('./test') + '').toString().trim().split(' '); let [n, k] = input.map((n) => parseInt(n)); let ansArr = []; const arr = Array.from({ length: n }, (v, i) => i + 1); for (let i = 0; i i + 1); let cnt = 0; while (arr.length > 0) { c.. 2021. 10. 12.
[백준] JS/ 1157 단어 공부 내 풀이 const fs = require('fs'); let input = (fs.readFileSync('./test') + '').toString().trim(); let inputArr = input.split(''); let ans = {}; inputArr.forEach((i) => { let ui = i.toUpperCase(); if (ans[ui]) ans[ui] += 1; else ans[ui] = 1; }); let a = Object.keys(ans).sort((a, b) => { return ans[b] - ans[a]; }); if (a.length === 1) console.log(a[0]); else { if (ans[a[0]] !== ans[a[1]]) console.log.. 2021. 10. 5.
[백준] JS/ 10808 알파벳 개수 내 풀이 const fs = require('fs'); let input = (fs.readFileSync('./test') + '').toString().trim().split(''); let ans = new Array(26).fill(0); input.map((alpha) => { let alpha2Ascii = alpha.charCodeAt(0); ans[alpha2Ascii - 97] += 1; }); console.log(ans.join(' ')); 정말 단순히 받은 문자열을 배열로 돌며 Ascii로 바꿔주고 해당 배열의 idx-97 (a = 97)에 넣어주기! 다른 풀이 const s = require("fs").readFileSync("/dev/stdin").toString().split(.. 2021. 9. 30.
반응형