일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- TCP
- dfs
- 가천대
- HTTP 완벽 가이드
- ip
- BFS
- Algorithm
- 백준
- type challenge
- 알고리즘
- typescript
- 타입 챌린지
- 레벨 1
- 크롤링
- Nestjs
- 문자열
- javascript
- Crawling
- Node.js
- 프로그래머스 레벨 2
- 쉬운 문제
- HTTP
- dp
- 수학
- 소켓
- 자바스크립트
- 타입스크립트
- 그래프
- socket
- 프로그래머스
- Today
- Total
목록javascript (104)
kakasoo
// 프로그래머스 level1 예산을 풀었습니다. function solution(d, budget) { d = d.sort((a, b) => a - b); const DP = new Array(d.length).fill(0); if (budget - d[0] >= 0) { DP[0] = 1; budget -= d[0]; } for (let i = 1; i = 0) { DP[i] = Math.max(DP[i - 1] + 1, DP[i]); budget -= d[i]; } } return Math.max(...DP); }
// 프로그래머스 레벨1 소수 만들기를 풀었습니다. const solution = (nums) => { const answer = []; const visited = Array(nums.length).fill(false); let count = 0; const sumOfVisited = () => { let sum = 0; for (let i = 0; i { if (visited.filter((el) => el).length === 3) { answer.push(sumOfVisited()); return;..
// 프로그래머스 레벨2 멀쩡한 사각형을 풀었습니다. // 나는 이걸 그래프라고 생각하여, 기울기를 이용해 구하려고 시도했다. // 시간초과가 나와서 결국 못풀던 문제인데, 오늘 찾아보니 최대공약수를 이용하는 문제였다. const gcd = (w, h) => { if (w % h === 0) { return h; } return gcd(h, w % h); }; const solution = (w, h) => { const gcdVal = gcd(w, h); return w * h - (w + h - gcdVal); };
// 프로그래머스 레벨2 구명보트를 풀었습니다. const isEmpty = (stack) => (stack.length ? false : true); function solution(people, limit) { const sortedStack = people.sort((a, b) => a - b); let count = 0; while (!isEmpty(sortedStack)) { let sum = sortedStack.pop(); while (sortedStack.length && sum + sortedStack[0]
// 프로그래머스 레벨2 큰수 만들기를 풀었습니다. // 그리디하지 않은 방식만 생각나서 한참을 고생한 문제입니다. 코드는 간결하지만 어려웠습니다. const solution = (number, k) => { const stack = []; for (let i = 0; i 0 && stack[stack.length - 1] < now) { stack.pop(); k--; } stack.push(now); } return stack.slice(0, stack.length - k).join(""); };
// 프로그래머스 레벨2 문자열 압축하기를 풀었습니다. // 매우 어려웠다. const solution = (s) => { if (s.length === 1) { return 1; } let minValue = 987654321; for (let i = 1; i
// 프로그래머스 레벨2 짝지어 제거하기를 풀었습니다. function solution(s) { let stack = []; for (let i = 0; i < s.length; i++) { if (stack.length !== 0) { if (stack[stack.length - 1] !== s[i]) { stack.push(s[i]); } else { stack.pop(); } } else stack.push(s[i]); } return stack.length === 0 ? 1 : 0; }
// 프로그래머스 레벨2 영어 끝말잇기를 풀었습니다. function solution(n, words) { let 중복체크 = []; for (let i = 0; i < words.length; i++) { if (i === 0) 중복체크.push(words[i]); else if ( !중복체크.includes(words[i]) && words[i - 1][words[i - 1].length - 1] === words[i][0] ) { 중복체크.push(words[i]); } else { return [(i % n) + 1, parseInt(i / n) + 1]; } } return [0, 0]; }
// 프로그래머스 레벨2 최솟값 만들기를 풀었습니다. function solution(A, B) { let answer = 0; A = A.sort((o1, o2) => o1 - o2); B = B.sort((o1, o2) => o1 - o2); for (let i = 0; i < A.length; i++) { answer += A[i] * B[B.length - 1 - i]; } return answer; }
// 프로그래머스 레벨2 최댓값과 최솟값을 풀었습니다. function solution(s) { let res = s .split(" ") .map(Number) .sort((o1, o2) => o1 - o2); return res[0] + " " + res[res.length - 1]; }
// 프로그래머스 레벨2 숫자의 표현을 풀었습니다. function solution(n) { let count = 0; for (let i = 1; i