[LeetCode] Armstrong Number

less than 1 minute read

문제정보

어떻게 풀까?

주어진 숫자의 각 자릿수에 총자릿수만큼 거듭제곱을 하여 모두 더한 값이 처음에 주어진 값과 같은지 여부를 반환한다.

Number타입으로 주어진 값을 String타입으로 변환한 뒤 Array.from을 사용하여 배열로 만들면 map을 이용해서 순차적으로 처리할 수 있다.

map, reduce는 Array타입에 사용할 수 있다. JavaScript의 Array의 length는 속성값이다. 유사배열객체(array-like object)에 대해서 알아두자.

문제풀이 (JavaScript)

/**
 * @param {number} N
 * @return {boolean}
 */
var isArmstrong = function(N) {
    let tot = 0;
    let arr = Array.from(N+'');
    arr.map(x => tot += Math.pow(x, arr.length));
    
    if(tot == N) return true;
    return false;
};

Leave a comment