Does my number look big in this? ( 6 kyu )

문제

A Narcissistic Number is a number which is the sum of its own digits, each raised to the power of the number of digits.

For example, take 153 (3 digits):

1^3 + 5^3 + 3^3 = 1 + 125 + 27 = 153

and 1634 (4 digits):

1^4 + 6^4 + 3^4 + 4^4 = 1 + 1296 + 81 + 256 = 1634

Narcissistic Number를 판별하는 문제

풀이

function narcissistic( value ) {
  let str = value.toString(), len = str.length, sum = 0;
  for ( let i = 0; i < len; i++ ) {
    sum += Math.pow(str[i], len)
  }
  return sum === value ? true : false;
}

str에 문자열로 담아 각 자릿수를 len만큼 제곱해서 sum에 합쳐 value와 비교후 결과값 리턴

다른 사람의 풀이

function narcissistic( value ) {
  return ('' + value).split('').reduce(function(p, c){
    return p + Math.pow(c, ('' + value).length)
    }, 0) == value;
}

toString이 아니라 ‘’을 더해서 문자열로 만드는 방법은 신기하네


'자료구조, 알고리즘 > Codewars 문제' 카테고리의 다른 글

Checking Groups ( 6 kyu )  (0) 2017.12.11
Rectangle into Squares ( 6 kyu )  (0) 2017.12.11
Triangle type ( 6 kyu )  (0) 2017.12.09
Pete, the baker ( 5 kyu )  (0) 2017.12.09
Largest 5 digit number in a series ( 5 kyu )  (0) 2017.12.08

+ Recent posts