기기

[ 프로그래머스 ] 자연수 뒤집어 배열로 만들기 ( java ) 본문

CS/알고리즘 풀이

[ 프로그래머스 ] 자연수 뒤집어 배열로 만들기 ( java )

notEmpty 2019. 12. 6. 20:50

[ 프로그래머스 ] 자연수 뒤집어 배열로 만들기  ( 자바 ) 

주어진 long 타입 수를 뒤집은 것을 배열로 리턴 

 

 

https://programmers.co.kr/learn/courses/30/lessons/12932

 

코딩테스트 연습 - 자연수 뒤집어 배열로 만들기 | 프로그래머스

자연수 n을 뒤집어 각 자리 숫자를 원소로 가지는 배열 형태로 리턴해주세요. 예를들어 n이 12345이면 [5,4,3,2,1]을 리턴합니다. 제한 조건 n은 10,000,000,000이하인 자연수입니다. 입출력 예 n return 12345 [5,4,3,2,1]

programmers.co.kr

 

핵심 

리턴할 배열을 만드는데 두 가지 방법 가능함

  1. 문자열( Long.toString(n) 사용
  2. 로그 (Math.log10(n)+1 ) 씌어서 길이 찾기 

 

그리고 n%10, n/10 처리 

 

 

 

코드 1 ( 로그 )

1
2
3
4
5
6
7
8
9
10
11
class Solution {
  public int[] solution(long n) {
    int[] ans = new int[(int)Math.log10(n)+1];
        int i = 0;
        while(n!=0) {
            ans[i++= (int)(n%10);
            n /= 10;
        }
      return ans;
  }
}
cs

 

코드 2 ( 문자열 )

좀 좋지 않은 코드. 처음 풀 때는 괜찮게 풀었는데 다시 풀 때 아래처럼 품.. 

굳이 char[] 로 안 하고 바로 n%, n/ 로 처리할 수 있다. 

1
2
3
4
5
6
7
8
9
10
class Solution {
    public int[] solution(long n) {
        char[] input = Long.toString(n).toCharArray();
        int[] ans = new int[input.length];
        for(int i = 0 ; i < input.length ; i++) {
            ans[input.length - i - 1= input[i] - '0';
        }
        return ans;
    }
}
cs