Instructions

링크

Convert number to reversed array of digits Given a random number:

C#: long; C++: unsigned long; You have to return the digits of this number within an array in reverse order.

Example:

348597 => [7,9,5,8,4,3]

My Solution

using System;
using System.Collections.Generic;

namespace Solution
{
  class Digitizer
  {
    public static long[] Digitize(long n)
    {
      // Code goes here
      string str = n.ToString();
      char[] chArr= str.ToCharArray();
      Array.Reverse(chArr);
      long[] longArr = new long[chArr.Length];
      for (int i = 0; i < longArr.Length; i++)
      {
        long number;
        if (Int64.TryParse(chArr[i].ToString(), out number))
        {
          longArr[i] = number;
        }
      }
      return longArr;
    }
  }
}
  • 8 kyu의 수준을 잘 모르겠다.
  • long형 변수를 스트링으로 변환한다. 그 후 char 배열로 변환하고 역순의 배열을 만든후에 각 변수들을 long 형으로 변환후 반환한다.

Best Practices

using System;
using System.Collections.Generic;
using System.Linq;

namespace Solution
{
  class Digitizer
  {
    public static long[] Digitize(long n)
    {
      return n.ToString()
              .Reverse()
              .Select(t => Convert.ToInt64(t.ToString()))
              .ToArray();
    }
  }
}
  • linq 사용.
  • 역순으로 만든 후. 각 값을 순회 하면서 long형으로 변환 해준후 배열로 반환해준다.