일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- 프로그래머스 레벨 2
- 타입스크립트
- HTTP 완벽 가이드
- 프로그래머스
- TCP
- Algorithm
- 타입 챌린지
- 문자열
- typescript
- BFS
- 백준
- 쉬운 문제
- Nestjs
- Crawling
- 크롤링
- 자바스크립트
- socket
- dp
- ip
- HTTP
- dfs
- Node.js
- 수학
- 알고리즘
- javascript
- 레벨 1
- 가천대
- 소켓
- Today
- Total
목록프로그래밍/알고리즘 풀이 (210)
kakasoo
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cbwSVj/btq8qJvMOhz/bJzPuS96KxBB7VkjJZCJ91/img.png)
// 프로그래머스 레벨2 문자열 압축하기를 풀었습니다. // 매우 어려웠다. const solution = (s) => { if (s.length === 1) { return 1; } let minValue = 987654321; for (let i = 1; i
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cqKd3y/btq8pOD7J3u/xDH6l9cRdSNukC6ZxuSjU0/img.png)
// 프로그래머스 레벨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; }
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/KWbHF/btq8lDYBy29/Smk9FqXWhel7wQ4SkI3Kk1/img.png)
// 프로그래머스 레벨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]; }
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/lOIn4/btq8mlpA1KW/7ZO6pwIkTCR8tYJDgUoRik/img.png)
// 프로그래머스 레벨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; }
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/ky8Lb/btq8pNLXxJ6/ipkTpiM5K6mYuacWiqGl41/img.png)
// 프로그래머스 레벨2 최댓값과 최솟값을 풀었습니다. function solution(s) { let res = s .split(" ") .map(Number) .sort((o1, o2) => o1 - o2); return res[0] + " " + res[res.length - 1]; }
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bvOORo/btq8hqSxaqQ/3MqdnUkV7zViwvwMIt1WGK/img.png)
// 프로그래머스 레벨2 숫자의 표현을 풀었습니다. function solution(n) { let count = 0; for (let i = 1; i
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/dprSuh/btq8mX9nSer/MQYDTJLkhHTIQkuy8ePiv1/img.png)
// 프로그래머스 레벨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; } }
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cNeNLu/btq8kIy36d4/LkyaWpfgSKYhFRbKtGvaPK/img.png)
// 프로그래머스 레벨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
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/boRfzJ/btq8jdZHayj/lVA5fHhymA44ikCHGqI5Nk/img.png)
// 프로그래머스 레벨2 JadenCase를 풀었습니다. function solution(s) { s = s.split(" "); for (let i = 0; i < s.length; i++) { let newS = ""; for (let j = 0; j < s[i].length; j++) { if (j === 0) newS += s[i][j].toUpperCase(); else newS += s[i][j].toLowerCase(); } s[i] = newS; } return s.join(" "); }
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/ZW5Zy/btq8okjb1Eo/6UrVVQKk8OW82si8NF9Mx0/img.png)
// 프로그래머스 레벨2 카펫을 풀었습니다. const 약수 = (num) => { let res = []; for (let i = 3; i o1 - o2); }; function solution(brown, yellow) { let square = brown + yellow; let div = 약수(square); for (let i = 0; i < parseInt(div.length / 2); i++) { let sero = div[i]; let garo = div[div.length - 1 - i]; let teduri = (garo - 2) * 2 + (sero - 2) * 2 + 4; let inner = (garo - 2) * (sero - 2); if (teduri === brown && i..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/chx2KK/btq8qIDCunM/8wZ1KAcAUaq2QZK56JwkK1/img.png)
// 프로그래머스 레벨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...
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/b1Upuk/btq8fXC8JIj/wKxkMhDFfKOyH5wk5LjkM0/img.png)
// 프로그래머스 레벨2 소수찾기를 풀었습니다. let visited = []; let num = []; let res = []; const dfs = (curIdx, curValue = "") => { visited[curIdx] = true; curValue += num[curIdx]; if (!res.includes(curValue)) { res.push(curValue); } for (let i = 0; i < num.length; i++) { if (visited[i] === false) { dfs(i, curValue); visited[i] = false; } } }; function solution(numbers) { num = numbers.split(""); visited = new Ar..