자연수 뒤집어 배열로 만들기
자연수 n을 뒤집어 각 자리 숫자를 원소로 가지는 배열 형태로 리턴해주세요. 예를들어 n이 12345이면 [5,4,3,2,1]을 리턴합니다.
제한 조건- n은 10,000,000,000이하인 자연수입니다.
12345 | [5,4,3,2,1] |
class Solution {
public int[] solution(long n) {
String str = String.valueOf(n); // 크기를 구하기 위해서 String으로 변환
int answer[] = new int[str.length()]; // 배열의 크기를 str로
int num = 0;
while(n>0){
answer[num] = (int)(n%10); // 일의 자리 숫자를 순서대로 배열에 넣기
n = n/10;
num ++;
}
return answer;
}
}
받은 매개변수 n을 함수안에 굳이 정의하지 않아도 사용할 수 있다.
[느낀점]
- 문자열을 나눌 때는 %, / 로 가뿐히 나누는게 심적으로 좋은 것 같다..
- StringBuilder sb.reverse( )로 사용할 수도 있다. 물론 Arrays.reverse( )도 있다..
- 크기를 구하기 위해서 String.valueOf(n)으로 바꿔줬지만 그냥 +" " 이렇게 문자열로 바꿔줘도 괜찮을 것 같다.
- 형변환... 안하면 오류난다.. answer이 int[ ]이고 n이 long이니까 n%10에 int로 꼭 형변환 해주기..꼭 꼭...
- 원래 배열을 [5, 4, 3, 2, 1] 이렇게 출력할 때 반복문 사용(1)하거나 Arrays.toString( )(2) 사용하기,, 까먹었다,, 다시 복기시키기..!
- while 문일 때도 arr안에 배열을 하나씩 넣을 수 있다. for(int i=0) 이렇게만 되니까 arr[i] 이렇게 배열에 arr[0].arr[1] 이렇게 집어넣을 수 있었는데, 생각해보니까 임의 변수를 안에 집어넣어서 ++ 하면 while도 쓸 수 있는 것..! 물론 for문 쓸 수도 있는데 다양하게 생각해보기..!
'algorithm > Programmers' 카테고리의 다른 글
[Summer/Winter Coding(~2018)] 예산 Java (0) | 2022.10.20 |
---|---|
[JAVA] 프로그래머스 로또의 최고 순위와 최저 순위 (0) | 2022.10.13 |
[JAVA] 프로그래머스 정수 제곱근 판별 (0) | 2022.09.28 |
[JAVA] 자릿수 더하기 (0) | 2022.09.24 |
스택/큐 프린터 (0) | 2022.02.14 |