[Programmers]自然数配列の反転-JAVA


📄 問題の説明


自然数nを逆さまにして、各数字を要素の配列で返します.例えば、nが12345の場合、[5,4,3,2,1]が返される.

📑 せいげんじょうけん

  • nは10000000以下の自然数である.
  • 📇 I/O例


    nreturn12345[5,4,3,2,1]

    👨🏻‍💻 私が書いたコード

    import java.util.*;
    
    class Solution {
        public ArrayList<Long> solution(long n) {
    	     ArrayList<Long> answer =new ArrayList<>();
    	     while(n > 0) {
    	    	 answer.add(n % 10);
    	    	 n /= 10;
    	     }
    	     return answer;
        }
    }

    💡 他者コード

    class Solution {
      public int[] solution(long n) {
          String a = "" + n;
            int[] answer = new int[a.length()];
            int cnt=0;
    
            while(n>0) {
                answer[cnt]=(int)(n%10);
                n/=10;
                System.out.println(n);
                cnt++;
            }
          return answer;
      }
    }

    👨🏻‍🏫 コード解析

  • String a = "" + n;この部分が理解できないので調べてみました.
  • String+intの場合、JavaではStringとみなされます.
  • 「+n」の場合、Java内部でStringBufferが生成されます.つまり、「+n」はStringBufferです.追加と同じだそうです.
  • 💡 に感銘を与える


    まだ足りない😭
    WHY?🤷🏻‍♂️ 私の答えは問題のポイントを把握していないコードです.int[]で表されるものはArrayListに変換して解きやすいので