일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- type challenge
- 레벨 1
- dp
- Node.js
- 소켓
- 그래프
- 프로그래머스 레벨 2
- ip
- dfs
- HTTP 완벽 가이드
- Crawling
- socket
- Nestjs
- 가천대
- 쉬운 문제
- 자바스크립트
- 알고리즘
- BFS
- javascript
- 프로그래머스
- 수학
- 문자열
- typescript
- Algorithm
- 백준
- 크롤링
- 타입스크립트
- TCP
- 타입 챌린지
- HTTP
- Today
- Total
목록프로그래밍/알고리즘 풀이 (210)
kakasoo
const left = 0; const right = 1; const isRight = (arr) => { const stack = []; for (const item of arr) { stack.push(item); if (stack.length >= 2) { while ((stack[stack.length - 2] === '(' && stack[stack.length - 1] == ')') || (stack[stack.length - 2] === '[' && stack[stack.length - 1] == ']') || (stack[stack.length - 2] === '{' && stack[stack.length - 1] ==..
const checkArr = (arr) => { const firstValue = arr[0][0]; for (let i = 0; i { const upArr = arr.splice(0, arr.length / 2); const downArr = arr; const upLeftArr = upArr.map((el) => el.splice(0, el.length..
// 프로그래머스 레벨2 튜플을 풀었습니다. const solution = (s) => { // "{{4,2,3},{3},{2,3,4,1},{2,3}}" const arr = s .split("},") .map((str) => { // [ '4,2,3', '3', '2,3,4,1', '2,3' ] return str .split("") .filter((el) => el !== "{" && el !== "}") .join(""); }) .sort((a, b) => { // [ '3', '2,3', '4,2,3', '2,3,4,1' ] return a.length - b.length; }) .m..
// 프로그래머스 레벨2 땅따먹기를 풀었습니다. // DP인 것은 알았지만, 코드로 구현하는 데에 상당히 오래 걸렸습니다. const solution = (land) => { const DP = new Array(land.length).fill(0); for (let i = 0; i < land.length; i++) { DP[i] = []; } for (let i = 0; i < land[0].length; i++) { DP[0][i] = land[0][i]; } for (let i = 1; i < land.length; i++) { DP[i][0] = land[i][0] + Math.max(DP[i - 1][1], DP[i - 1][2], DP[i - 1][3]); DP[i][1] = land[i][..
// 프로그래머스 레벨2 2개 이하로 다른 비트를 풀었습니다. const ImSoBoring = (num) => { const bits = num.toString(2).split(""); if (num % 2 === 0) { bits.pop(); return parseInt([...bits, "1"].join(""), 2); } else { bits.unshift("0"); for (let i = bits.length - 1; i >= 0; i--) { if (bits[i] === "0") { bits[i] = "1"; bits[i + 1] = "0"; return parseInt(bits.join(""), 2); } } } }; const solution = (numbers) => { return nu..
// 프로그래머스 레벨2 이진 변환 반복하기를 풀었습니다. const solution = (s) => { let zeroCount = 0; let count = 0; while ( (s = s .split("") .filter((el) => { if (el !== "0") { return true; } zeroCount++; return false; }) .join("") .length.toString(2)) !== "1" ) { count++; } return [count + 1, zeroCount]; };
// 프로그래머스 레벨2 행렬 테두리 회전하기를 풀었습니다. const rotateMap = (map, query) => { const [row1, col1, row2, col2] = query.map((el) => el - 1); const answer = []; for (let i = col1; i col1; i--) answer.push(map[row2][i]); for (let i = row2; i > row1; i--) answer.push(map[i][col1]); answe..
/** * 1. 단품 메뉴들의 합집합을 만든다. * 2. 단품 메뉴들의 조합을 만든다. ( 중복은 제거하고, length가 2 이상. ) * 3. 조합들과 손님의 주문을 각각 비교하여 횟수를 구한다. * 4. 각 팔린 횟수 중에서 가장 메뉴 가짓수length가 큰 것을 뽑는다. */ const sortString = (str) => str.sort((a, b) => { const aStr = a.split(""); const bStr = b.split(""); while (aStr.length && bStr.length) { const aCode = aStr.shift().charCodeAt(); const bCode = bStr.shift().charCodeAt(); if (aCode === bCode..
// 프로그래머스 레벨2 [1차] 뉴스 클러스터링을 풀었습니다. // const lastOnlyAlphabet = (str) => { // const aCode = 'A'.charCodeAt(); // const zCode = 'Z'.charCodeAt(); // return str.toUpperCase().split('').filter((el) => { // const cur = el.charCodeAt(); // if (aCode
// 프로그래머스 레벨2 배달을 풀었습니다. const makeMap = (N, road) => { const map = new Array(N).fill(false); for (let i = 0; i value) { map[from - 1][to - 1] = value; map[to - 1][from - 1] = value; } } return map; }; const solution = (N..
// 프로그래머스 레벨2 예상 대진표를 풀었습니다. // 둘 씩 잘라서 계속 붙게 하면 언젠가 만나겠거니, 라는 생각으로 풀었습니다. const getOneRound = (arr) => { const answer = []; for (let i = 0; i { let humans = new Array(n).fill(0); humans[a - 1] = 1; humans[b - 1] = 1; let count = 0; loop1: while (true) { count++; humans = getOneRound(huma..
// 프로그래머스 레벨2 게임 맵 최단 거리를 풀었습니다. const solution = (maps) => { if (!maps[0][0]) { return -1; } const visited = new Array(maps.length); for (let i = 0; i { const queue = [{ y: startY, x: startX }]; visited[startY][startX] = 1; while (q..