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

문제정의


자연수가 주어질때 각 자릿수를 뒤집어 배열로 만들어 반환하는 문제이다.

문제풀이


전체 코드는 다음과 같다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
import java.util.*;

public class FlipNumtoArr {

//프로그래머스 문제풀이 level1 자연수 뒤집어 배열로 만들기
public static void main(String[] args)
{
int n = 12345;
ArrayList<Integer> list = new ArrayList<Integer>();
while(n > 0)
{
long r = n%10;
list.add((int)r);
n /= 10;
}
int[] answer = new int[list.size()];
for(int i = 0; i < list.size(); i++)
{
answer[i] = Integer.parseInt(list.get(i).toString());
}
}

}
어레이리스트를 만들어서 n%10한 값을 추가하고 n 나누기 10을 한다. 그리고 다시 배열로 바꾸면 된다. 총 시간복잡도는 \(O(log10(n))\)이다.

테스트



long을 int로 캐스팅 하면서 overflow가 일어나 처음에 테스트케이스를 통과하지 못했다. 그래서 처음에 나머지 연산을 하는 부분은 long으로 유지하고 값을 집어넣기 전에 int로 바꿨다.