일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Baekjoon
- 자바스크립트 연결리스트
- 리액트쿼리
- 자바스크립트 알고리즘
- JS
- 자바스크립트 문제풀이
- 리액트
- leetcode
- Next
- CSS
- lodash
- 타입스크립트
- react
- next13
- 제로베이스
- til
- leetcode문제풀이
- JavaScript
- 알고리즘문제풀이
- 프론트엔드
- stack문제
- Next.js13
- HTML
- 프로그래머스
- 자바스크립트 문제
- NPM
- 자바스크립트 문제 풀이
- 자바스크립트
- 자바스크립트 알고리즘 문제
- 자바스크립트코딩테스트
- Today
- Total
목록자바스크립트 알고리즘 문제 (3)
코드노트
입력 값 : 123 139 출력 값 : [ 1, 18, 8, 12, 2, 2, 2, 2, 2, 2 ] ex) 입력 갑 사이의 숫자들 ( 123, 124, 125, ..., 137, 138, 139) 에서 자릿수 별로 숫자의 빈도수를 구해서 반환해야한다. 0 = 2, 1 = 22, 2 = 12,... 등등 각 자리수에 맞춰서 0이 몇번 나오는지, 1이 몇번 나오는지를 출력하면 되는 문제이다. 처음에 이 문제를 보고 숫자를 문자로 바꿔서 조건문으로 출력하려고 하였다. 문자로 바꾸지 않고 숫자 그대로를 출력할 수 있는 방법은 무었이 있을까? 결과 값에 0 부터 9까지의 자리를 만들어 놓고, while문을 돌면서 %, / 를 통해서 자릿수를 구할 수 있었다. * 나머지 연산 이후 parseInt로 정수를 만들어..
배열 [ 5, 2, 4, 1, 7, 5 ] Q, 배열에는 각 높이들이 있다. 높이가 같은 높이로 맞추고 맞춰지는 높이 값들이 얼마인지 구해야한다. 1. 높이값을 모두 더하고 배열의 길이만큼 나눠 평균을 구한다. 2. 원래 높이를 비교해가며 평균보다 낮으면 그 차를 결과값에 더해준다. let sum = 0; for (let i = 0; i block) { result += sum - block; } } - for문으로 해도 되지만 for...of로 간단하게 할 수 있었다.
Q. 배열에서 높은값 2개를 찾아서 출력하기. 2개의 수를 뽑는 방법은 여러방법이 있다. 먼저 오름차순으로 변경 후 앞에 인덱스 2개만 반환시키게 되면 끝나는 문제다. 그러나 하나씩 비교해가면서 두개의 값을 출력해야하면 어떻게 해야할까? 1.배열 첫번째 두번째 값을 먼저 비교하여 정해준다. result = nums[1] > nums[0] ? [nums[1], nums[0]] : [nums[0], nums[1]]; - 배열의 1번과 0번째를 비교하여 정해준다. - 다음 for문에서 첫번째와 두번째의 크기로 비교하면서 최대값들을 찾도록 한다! 2. 더한 값에 100을 뺀다. for (let i = 0; i result[0]) { result[1..