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

자연수 뒤집어 배열로 만들기



문제 설명

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


제한 조건

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


입출력 예

n         return

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


문제풀이


1
2
3
4
5
6
7
8
9
10
11
class Solution {
  public int[] solution(long n) {
      String tempStr = new String(n+"");
      char[] tempChar = tempStr.toCharArray();
      int[] answer=new int[tempChar.length];
      for(int i =0; i<tempChar.length; i++){
          answer[i] = Integer.parseInt(tempChar[tempChar.length-1-i]+"");
      }
      return answer;
  }
}
cs


풀이 요점 : long -> +""으로 String 변환 -> char형 배열로 변환 -> 반환할 배열에 +""하고 parseInt()메소드로 숫자로 변환후 반환!


다른사람의 문제풀이


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
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;
            cnt++;
        }
      return answer;
  }
}
cs


12345라는 숫자가 주어졌을때 마지막자리가 끝으로 가야하므로... 12345중 마지막숫자는 12345%10에서 구한 5, (12345/10)을 하면 1234만 남으므로 그다음은 1234%10 = 4, 이런식으로 구하는 코드이다. 깔끔한것 같다.


저는 주로 문자열을 이용해서 문제를 푸는 방법으로 다가가는데,,,(왜냐하면 문과출신이기 때문입니다...) 이러한 주인공이 숫자인 문제(혹은 숫자계산류의 문제)는 숫자의 연산을 통해서 문제해결을 노력해보아야겠습니다. 문제를 해결하는데 있어서 정답은 없지만 한가지길로만 걷는 것은 정답은 아니라고 생각하기 때문에 다각도로 여러가지 문제해결방법을 익히고 싶기 때문입니다.



댓글

Designed by JB FACTORY