프로그래머스

자바스크립트 자릿수 더하기

늘곰's 2023. 8. 18. 20:55
//자릿수 더하기
//문제해결 
// 숫자의 각 자리수 숫자를 각각 더해 합치는 문제
// 숫자를 각각 나누기 위해서 배열을 만들어야 했음
// 배열로 만들기 위해서는 숫자를 문자로 바꾸어야 하기 때문에 String 사용
// 변수 str1 에 String 을 넣으니 나오는 로그는 각각  /123 / string
// mapfn 으로 함수의 매개변수 arr을 지정하고 arr 을 넘버로 바꿔주었다
// 로그는  [1,2,3]  number
// 그후 for 문으로 각각의 인덱스를 전부 더해주었다
// 트러블슈팅
// 함수안에 매개변수를 넣는것이 익숙치 않아 mapfn 을 
// var mapfn = Number(str1); 으로 입력하였다.
// 그랬더니 Array.from을 작성하는 과정에서 문법적 오류가 생겼다.
// 문제를 확인하고 찾아본 결과 함수의 두번째 인수는 매개변수를 어떻게 생성해야하는지 정의하는 매핑'함수'여야한다는것
// 한마디로 mapfn 을 함수로 작성하지 않아서 Array.from을 잘못 작성하고있엇고 사용이 안되었다.

function solution(n)
{
    var answer = 0;
    var str1 =  String(n);
    // console.log(str1)
    // console.log(typeof(str1))
    var mapfn = (arr) => Number(arr);
    
    var Newn = Array.from(str1,mapfn);
    // console.log(Newn)
    // console.log(typeof(Newn[0]))
    
    for(i = 0; i <Newn.length ; i ++){
        answer += Newn[i]
    }

    return answer;
}


// 숫자 배열하는방법 type까지 숫자로 
// var num = 12345;

// const str = String(num);

// console.log(str)
// console.log(typeof(str))

// const mapfn = (arg) => Number(arg);
// console.log(mapfn)
// console.log(typeof(mapfn))

// const newArr = Array.from(str, mapfn);
// console.log(newArr)
// console.log(typeof(newArr[0]))


//정답

// function solution(n)
// {
//     var answer = 0;
//     var str1 =  String(n);
//     console.log(str1)
//     console.log(typeof(str1))
//     var mapfn = (arr) => Number(arr);
    
//     var Newn = Array.from(str1,mapfn);
//     console.log(Newn)
//     console.log(typeof(Newn[0]))
    
//     for(i = 0; i <Newn.length ; i ++){
//         answer += Newn[i]
//     }

//     return answer;
// }
// console.log(solution(123));