본문 바로가기
Java/알고리즘

[프로그래머스/알고리즘] 자연수 뒤집어 배열로 만들기(자바/Java)

by 전재경 2022. 11. 21.

문제 설명

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

 

제한 조건

  • n은 10,000,000,000이하인 자연수입니다.

Step1. 문제분석 

n의 값을 역순으로 index에 담으면 된다고 생각했다.

for 문으로 n의 길이만큼 시작을 해서 역순으로 빼면서 진행했다.

 

Step2. 문제풀이 코드

class Solution {
    public int[] solution(long n) {

        String str = n + "";
        int[] answer = new int[str.length()];

        int j = 0;
        for (int i = str.length() - 1; i >= 0; i--) {
            answer[j] = Integer.parseInt(str.charAt(i) + "");
            j++;
        }
        return answer;
    }
}

 

Step3. 다른 사람의 풀이 코드

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;
  }
}
import java.util.stream.IntStream;

class Solution {
    public int[] solution(long n) {
        return new StringBuilder().append(n).reverse().chars().map(Character::getNumericValue).toArray();
    }
}

 

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

      int[] answer = new int[ss.length];
      for (int i=0; i<ss.length; i++) {
          answer[i] = Integer.parseInt(ss[i]);
      }
      return answer;
  }
}

이렇게 reverse method를 사용하는 방법도 있다.

댓글