일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 | 31 |
- 쉬운 문제
- dfs
- type challenge
- Algorithm
- HTTP 완벽 가이드
- 백준
- Crawling
- 소켓
- typescript
- 알고리즘
- 크롤링
- 레벨 1
- 타입스크립트
- javascript
- 프로그래머스 레벨 2
- 타입 챌린지
- ip
- 프로그래머스
- Node.js
- socket
- TCP
- dp
- HTTP
- 자바스크립트
- Nestjs
- 그래프
- 문자열
- BFS
- 수학
- 가천대
- Today
- Total
목록알고리즘 (82)
kakasoo
// 프로그래머스 레벨1 신규 아이디 추천을 풀었습니다. const firstRule = (str) => str.toLowerCase(); const secondRule = (str) => str .split("") .filter((el) => { const charCode = el.charCodeAt(); const aCode = "a".charCodeAt(); const zCode = "z".charCodeAt(); const zeroCode = "0".charCodeAt(); const nineCode = "9".charCodeAt(); if ( (zeroCode (str.length ? str : "a"); const sixthRule = (str) => { const next = str.leng..
// 프로그래머스 레벨 1 폰켓몬을 풀었습니다. const solution = (nums) => { const chance = parseInt(nums.length / 2); const max = Array.from(new Set(nums)).length; return max >= chance ? chance : max; };
// 프로그래머스 레벨 1 음양 더하기를 풀었습니다. const solution = (absolutes, signs) => { let sum = 0; for (let i = 0; i < absolutes.length; i++) { sum += signs[i] ? absolutes[i] : -absolutes[i]; } return sum; };
// 프로그래머스 레벨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 최댓값과 최솟값을 풀었습니다. 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
// 프로그래머스 레벨2 다음 큰 숫자를 풀었습니다. function solution(n) { let oneN = n .toString(2) .split("") .filter((e) => e == 1).length; while (++n) { if ( n .toString(2) .split("") .filter((e) => e == 1).length === oneN ) return n; } }
// 프로그래머스 레벨2 H-Index를 풀었습니다. function solution(citations) { citations = citations.sort((o1, o2) => o1 - o2); let maxV = 0; let count = 1; while (count e e >= count); //console.log(이상, count, 이하); if (이상.length >= count && 이하.length
// 프로그래머스 레벨2 타겟넘버를 풀었습니다. let num; let visited; let answer = 0; const dfs = (plus, arr, cur, target) => { visited[cur] = true; if (plus) arr.push(num[cur]); else arr.push(-num[cur]); if (cur + 1 === num.length) { if (arr.reduce((acc, cur) => acc + cur) === target) { answer++; } return; } dfs(true, arr, cur + 1, target); arr.pop(); visited[cur + 1] = false; dfs(false, arr, cur + 1, target); arr...
// 프로그래머스 레벨2 가장 큰 수를 풀었습니다. // DFS로 풀려고 시도했고, 그 덕에 그래프에 대한 학습 및 복습이 가능했으나 시간초과, 런타임에러를 해결할 수 없었다. // 결국 정렬된 값들을 사용한다는 발상으로, 최적화를 했으나 테스트 케이스 3개 이상을 달성할 수 없었고, // 그래프로 생각해서 풀 수 있는 문제가 아니라는 결론에 도달했다. // 사실 아래와 같은 sort를 생각하긴 했으나, 어떻게 구현할지를 전혀 감을 잡지 못해서 풀지 못하고 있었다. function solution(numbers) { if (numbers.length === numbers.filter((e) => e === 0).length) return "0"; return numbers .map((el) => el +..
// 프로그래머스 레벨2 올바른 괄호를 풀었습니다. function solution(s) { let left = 0; let right = 0; for (let i = 0; i left) return false; } if (left !== right) return false; return true; } 최근에 한 번 더 푼 적이 있는 문제인데, 얘는 풀 때마다 알쏭달쏭하다.
// 프로그래머스 레벨2 124나라를 풀었습니다. function solution(n) { let answer = ""; while (n > 0) { switch (n % 3) { case 1: answer = "1" + answer; n = Math.floor(n / 3); break; case 2: answer = "2" + answer; n = Math.floor(n / 3); break; case 0: answer = "4" + answer; n = n / 3 - 1; break; } } return answer; } 최근에 한 번 더 푼 적이 있는 문제인데, 얘는 풀 때마다 알쏭달쏭하다.