본문 바로가기

Java/Java 알고리즘 프로그래머스

[프로그래머스-LEVEL 1] 13. 자연수 뒤집어 배열로 만들기

반응형
  • 자연수 뒤집어 배열로 만들기
문제 설명

자연수 n을 뒤집어 각 자리 숫자를 원소로 가지는 배열 형태로 리턴해주세요. 예를들어 n이 12345이면 [5,4,3,2,1]을 리턴합니다.

제한 조건
  • n은 10,000,000,000이하인 자연수입니다.
입출력 예
n return
12345 [5,4,3,2,1]

 


 

import java.util.*;

class Solution {
    public int[] solution(long n) {
        String str = Long.toString(n);
        char[] arr = str.toCharArray();
        int[] answer = new int[arr.length];
        
        for(int i=0;i<arr.length;i++){
            answer[arr.length-(i+1)]=Character.getNumericValue(arr[i]);
            //char to int : Character.getNumbericValue(char);
            //맨 뒤부터 arr[i]값을 넣는다. [내림차순이므로]
        }
        return answer;
    }
}

 

+)세련된 풀이

 

Long to String : String a="" +Long;

Int to String : String a = ""+ int;

-> n을 10으로 나누고, 나눈 나머지를 저장한다. -> 백의 자리, 십의 자리, ...순으로 저장

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;
  }
}
class Solution {
  public int[] solution(long n) {
      int length = Long.toString(n).length();
      //Long to Int : Long.toString(int)
      
        int[] answer = new int[length];

        for (int i = 0; i < length; i++) {
            answer[i] = (int) (n % 10);
            n /= 10;
        }

        return answer;
  }
}

 

StringBuilder 이용

class Solution {
  public int[] solution(long n) {
      String s = String.valueOf(n);
      //Long to String : String.valueOf(str);
      
      StringBuilder sb = new StringBuilder(s);
      sb = sb.reverse();
      String[] ss = sb.toString().split("");
      //StringBuilder to String : sb.toString()
      //String to String[] = string.split("");

      int[] answer = new int[ss.length];
      for (int i=0; i<ss.length; i++) {
          answer[i] = Integer.parseInt(ss[i]);
          //String to int : Integer.parseInt(string);
      }
      return answer;
  }
}
반응형