https://www.acmicpc.net/problem/14912
14912번: 숫자 빈도수
자연수 n (1 ≤ n ≤ 100,000)과 한 자리 숫자 d(0~9)가 첫째 줄에 주어진다.
www.acmicpc.net
toString().split(' ').map(Number)로 입력받은 값을 공백 기준으로 나눈 후,
각 원소를 숫자로 만들어주었다.
그다음 input[0]는 변수 n, input [1]은 변수 d에 넣어주었다.
(input [1]을 문자열로 바꾼 이유는 객체 key 값으로 사용할 것이기 때문이다)
그리고 1부터 n까지 for 문을 돌면서 toString().split('')으로
해당 숫자를 한 글자씩 나누어 배열로 만들어 주었다
(해당 숫자의 자릿수를 모르기 때문)
그 후, map을 사용하여 그 배열의 원소에 접근해서 obj에 원소가 있다면 개수를 1 더해주고,
없다면 원소 개수를 1로 해주었다.
마지막으로 변수 d를 객체의 key로 접근하여
객체 안에 d라는 수가 몇 번 나왔는지 출력해주었다.
const input = require('fs').readFileSync('/dev/stdin').toString().split(' ').map(Number);
const n = input[0];
const d = String(input[1]);
const obj = {};
for (let i=1; i<=n; i++) {
let num = i.toString().split('');
num.map((e) => {
obj[e] = (obj[e] || 0) + 1;
})
}
console.log(obj[d]);
ex) 입력 값이 11 1인 경우
console.log(obj[d]) => 4
'코딩테스트 > Baekjoon' 카테고리의 다른 글
[백준 #25304] 영수증 (node.js) (0) | 2022.08.09 |
---|---|
[백준 #3003] 킹, 퀸, 룩, 비숍, 나이트, 폰 (node.js) (0) | 2022.08.09 |
[백준 #3052] 나머지 (node.js) (1) | 2022.05.10 |
[백준 #2577] 숫자의 개수 (node.js) (0) | 2022.05.10 |
[백준 #2562] 최댓값 (node.js) (0) | 2022.05.10 |