Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 자바스크립트 알고리즘
- Baekjoon
- lodash
- 자바스크립트 알고리즘 문제
- 자바스크립트 문제풀이
- Next.js13
- 제로베이스
- JavaScript
- CSS
- stack문제
- leetcode
- leetcode문제풀이
- 자바스크립트
- 타입스크립트
- JS
- Next
- next13
- NPM
- 자바스크립트 문제
- 리액트
- 자바스크립트 문제 풀이
- til
- HTML
- 자바스크립트 연결리스트
- 알고리즘문제풀이
- 자바스크립트코딩테스트
- react
- 프론트엔드
- 리액트쿼리
- 프로그래머스
Archives
- Today
- Total
코드노트
자바스크립트 배열 문제 풀이 - 숫자 빈도수 구하기 본문
입력 값 : 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로 정수를 만들어 준다.
ex) 123 % 10 = 3이 나온다. // 1의 자리 수는 3
ex) 123 / 10 = 12이 나온다.
ex) 12 % 10 = 2이 나온다. // 10의 자리 수는 2
ex) 12 / 10 = 1이 나온다.
ex ) 1 % 10 = 1이 나온다. // 100의 자리 수는 1
이렇게 반복분을 돌면서 결과 값에 ++을 해주게 되면 숫자로 빈도수를 구할 수 있다.
for (let i = 0; i < 10; i++) {
result[i] = 0;
}
let num; // 변수를 만들어서 숫자를 하나씩 담아서 계산
for (let i = s; i <= e; i++) {
num = i;
while (num != 0) { // num 이 0이 될때까지
result[num % 10]++; // % 나머지로 1, 10, 100,... 자릿수를 구한다.
num /= 10; // 나누기 한 값에
num = parseInt(num); // 정수로 다시 담고
}
}
- 문자로 바꾸고 조건들을 통해서 넣는것보다 더 간단한 함수로 계산할 수 있었다.!
'Code note > 자바스크립트 알고리즘 문제풀이' 카테고리의 다른 글
코딩테스트 연습 - 같은숫자는 싫어 (0) | 2022.08.30 |
---|---|
자바스크립트 달팽이 배열 문제 풀이 (0) | 2022.08.26 |
자바스크립트 배열 문제 풀이 - 높이 맞추기 / 배열 평균에 맞추기 (0) | 2022.08.23 |
자바스크립트 배열 문제 풀이 - 문제점수 채점, 가산점 계산 (0) | 2022.08.23 |
자바스크립트 배열 문제 풀이 - 배열 내 두 값 == 합 (0) | 2022.08.23 |