티스토리 뷰

Algorithms

Find Digits

seoca 2020. 9. 13. 11:30

 

Solution I in Javascript 

function solve(n) {
    //toString: number to string
    // 1012

    //split: split("")는 string split into an array of substrings
    //하나하니의 element로 나누기 위해서 기준을 빈칸이없는 ''로 잡는다
    // [1,0,1,2]

    //filter: 전체 element중 조건을 통과한 element로 new array 만든다

    return n.toString().split('').filter(i => n % i === 0).length

}

console.log(solve(1012)); //3

 

 

 

 

 

 

Solution II in Javascript 

function solve(n) {

    let strArray = (n + "").split('');
//1. javascript 형변 문자열 + 숫자 = 문자열 이 된다. toString사용과 같음
//2. split사용이유: string을 character마다 나누어서 array로 return. [1,0,1,2]가 아닌 [1012]니까.
//[ '1', '0', '1', '2' ]

    let numArr = []; //array선언.

    for (let i = 0; i < strArray.length; i++) { //string loop
        let num = strArray[i] * 1; //Javascript의 형변환 string to number
        // 1 0 1 2

        if (n % num === 0) {
            numArr.push(num)
        }
    }
    console.log(numArr.length); //3
}

solve([1012]);

// to derive each number in an array
// 1. number to string conversion
// 2. make 1 to array
// 3. string to number conversion

 

 

 

 

 

 

 

Reference

www.hackerrank.com/challenges/find-digits/problem

'Algorithms' 카테고리의 다른 글

The Hurdle Race  (0) 2020.09.25
Cats and a Mouse  (0) 2020.09.17
Bon Appétit  (0) 2020.09.12
Birthday Chocolate  (0) 2020.09.11
Divisible Sum Pairs  (0) 2020.09.05