공부하기/백준

[JavaScript] 백준 풀기 2577 - 숫자의 개수

XEV 2022. 11. 3. 22:21

자바스크립트 nodejs 백준 2577번

브론즈2

https://www.acmicpc.net/problem/2577

 

2577번: 숫자의 개수

첫째 줄에 A, 둘째 줄에 B, 셋째 줄에 C가 주어진다. A, B, C는 모두 100보다 크거나 같고, 1,000보다 작은 자연수이다.

www.acmicpc.net

 

 

 

문제 보기

분류: 수학, 구현, 사칙연산

 

 

 

문제 풀기

문제에서 제시한 그대로 세 개의 곱을 계산하여 나온 결과를 0 부터 9 까지 for loop 을 사용하여 찾고자 하였는데 자바스크립트 검색을 하다 보니 더 좋은 아이디어를 보게 되었다.

곱을 하여 계산된 결괏값에 0 ~ 9 중의 숫자가 들어있으면 그 숫자로 분리하고, 그 분리 저장된 배열의 원소의 개수를 기반으로 찾는 방법이다.

 

 

 

코드 보기

let numbers_ls = require('fs').readFileSync('dev/stdin').toString().split('\n');
// console.log(numbers_ls)         // test print

const result = String(numbers_ls[0] * numbers_ls[1] * numbers_ls[2]); 
// console.log(result)         // test print

for(let i = 0; i <= 9; i++){
  console.log(result.split(i).length-1);
}

 

 

 

추가 하기

// text.txt

150
266
427
// index.js

let numbers_ls = require('fs').readFileSync('text.txt').toString().split('\n');
console.log(numbers_ls)         // test print

const result = String(numbers_ls[0] * numbers_ls[1] * numbers_ls[2]); 
console.log(result)         // test print

for(let i = 0; i <= 9; i++){
    console.log(result.split(i))            // test print
    console.log(result.split(i).length-1);
}



// [ '150', '266', '427' ]
// 17037300


// [ '17', '373', '', '' ]
// 3

// [ '', '7037300' ]
// 1

// [ '17037300' ]
// 0

// [ '170', '7', '00' ]
// 2

// [ '17037300' ]
// 0

// [ '17037300' ]
// 0

// [ '17037300' ]
// 0

// [ '1', '03', '300' ]
// 2

// [ '17037300' ]
// 0

// [ '17037300' ]
// 0