일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- css
- Deep Dive
- 알고리즘
- node.js
- Kubernetes
- 프로그래머스
- 인접리스트
- 탐욕법
- nestjs
- 인접행렬
- puppeteer
- java
- GraphQL
- LifeCycle
- winston
- Linux
- OOP
- MySQL
- javascript
- Interceptor
- REST API
- Spring
- dfs
- html
- 코딩테스트
- typescript
- JWT
- TIL
- bean
- 자료구조
- Today
- Total
목록코딩테스트/Javascript (24)
처음부터 차근차근
문제 링크 https://leetcode.com/problems/binary-search/description/ 문제 설명 Given an array of integers nums which is sorted in ascending order, and an integer target, write a function to search target in nums. If target exists, then return its index. Otherwise, return -1. You must write an algorithm with O(log n) runtime complexity. Example 1: Input: nums = [-1,0,3,5,9,12], target = 9 Output: 4 Explana..

문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/42626 문제 설명 내 풀이 class MinHeap { constructor() { this.heap = []; } // 부모 인덱스, 자식 인덱스 구하는 메소드 getParentIndex(childIndex) { return Math.floor((childIndex - 1) / 2); } getLeftChildIndex(parentIndex) { return 2 * parentIndex + 1; } getRightChildIndex(parentIndex) { return 2 * parentIndex + 2; } swap(idx_1, idx_2) { [this.heap[idx_1], th..

문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/12951 문제 설명 내 풀이 function solution(clothes) { // 의상의 종류를 key, 그것에 일치하는 의상의 개수를 hash라고 한다. let key = []; let hash = []; let answer = 1; // 반복문을 돌려 hash table을 생성하자. for(let i = 0; i < clothes.length; i++) { if (key.indexOf(clothes[i][1]) == -1) { key.push(clothes[i][1]); hash.push(1); } else { hash[key.indexOf(clothes[i][1])]++; } } ..

문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/70129 문제 설명 내 풀이 function solution(s) { var answer = [0,0]; let result = method(answer, s) return result } function method(array, s) { if (s === "1") { return array } else { array[0]++ let deleteS = s.replaceAll('0','') array[1] += s.length - deleteS.length let parseS = deleteS.length.toString(2) return method(array, parseS) } } 재귀함..

문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/120871 문제 설명 내 풀이 function solution(n) { // 1. answer = 1로 설정 let answer = 1 // 2. 정수 n만큼 반복문 실행 for (i = 1;i < n; i++){ // 2-1 반복문을 돌리때마다 숫자 1을 추가 answer++ // 2-2 math 함수 실행 answer = math3(answer) } return answer } function math3(answer) { // 3으로 나뉘어지거나, 3이 포함되어 있는 경우 if (answer % 3 == 0 || String(answer).includes('3')){ // 숫자를 증가시..

문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/120864 문제 설명 내 풀이 function solution(my_string) { return my_string.split(/[a-z]/ig).filter((v) => v !== '').reduce((acc,cur) => acc + (+cur),0) } 정규표현식을 사용하여 문제를 풀었다. 다른 사람의 풀이 function solution(my_string) { return my_string.split(/\D+/).reduce((acc, cur) => acc + Number(cur), 0); } \D+ 라는 정규 표현식을 배웠고, 그리고 나는 filter를 적용했는데 생각해보니 필터를 ..

문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/17681 문제 설명 네오는 평소 프로도가 비상금을 숨겨놓는 장소를 알려줄 비밀지도를 손에 넣었다. 그런데 이 비밀지도는 숫자로 암호화되어 있어 위치를 확인하기 위해서는 암호를 해독해야 한다. 다행히 지도 암호를 해독할 방법을 적어놓은 메모도 함께 발견했다. 지도는 한 변의 길이가 n인 정사각형 배열 형태로, 각 칸은 "공백"(" ") 또는 "벽"("#") 두 종류로 이루어져 있다. 전체 지도는 두 장의 지도를 겹쳐서 얻을 수 있다. 각각 "지도 1"과 "지도 2"라고 하자. 지도 1 또는 지도 2 중 어느 하나라도 벽인 부분은 전체 지도에서도 벽이다. 지도 1과 지도 2에서 모두 공백인 부..

문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/12941 문제 설명 내 풀이 function solution(A,B){ const a = A.sort((a,b) => a-b) const b = B.sort((a,b) => b-a) return a.reduce((acc,cur,index) => acc += cur * b[index],0) } 먼저 A는 작은 수로 sort하고, B는 큰 수로 sort 한다. 가장 작은 수, 그리고 가장 큰 수 부터 곱해가야 최솟값이 나오기 때문 마지막으로 reduce를 이용하여 곱한 값들을 더하는 방식을 사용 다른 사람의 풀이 function solution(A,B){ A.sort((a, b) => a - ..

문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/12909 문제 설명 내 풀이 function solution(s){ let stack = 0; for (let i = 0; i= 0 && i < s.length) { // if (s[i] == "(") stack++ // if (s[i] == ")") stack-- // i++ // } // ..

문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/12982 문제 설명 내 풀이 function solution(d, budget) { // 1. sort로 예산을 작은 수로 정렬한다. d.sort((a,b) => a-b) // 2. total 예산을 선언 let total = 0; // 3. 반복문을 진행하면서 total 예산을 더해준다 for (let i = 0; i budget) { return i } } // 4. 반복문을 다 하고도 예산이 남은 경우 return d.length } 1. 예산을 작은 것부터 정렬한다. 작은 예산부터 넣어야 최대한 많은 부서를 넣을 수 있기 때문이다. 2. 반복문을 진행하면서 예산을 추가한다. 예산이 ..