[프로그래머스]자연수 뒤집어 배열로 만들기(JAVA)
업데이트:
문제 설명
자연수 n을 뒤집어 각 자리 숫자를 원소로 가지는 배열 형태로 리턴해주세요.
예를들어 n이 12345이면 [5,4,3,2,1]을 리턴합니다.
- 제한 조건
n은 10,000,000,000이하인 자연수입니다.
- 예시
풀이
import java.util.*;
class Solution {
public int[] solution(long n) {
int num = Long.toString(n).length();
int[] answer = new int[num];
int cnt = 0;
while(n>0){
answer[cnt++] = (int)(n%10);
n/=10;
}
return answer;
}
}
- 실행 결과
정수를 String으로 변환한 후, 문자열의 길이를 반환받아 배열의 크기를 지정한다.
정수%10 = 마지막 자리 수가 되기 때문에 순서대로 배열에 담아두면 자동으로 숫자를 거꾸로 반환받을 수 있다.
풀이 (““을 더해서 문자열로 변환)
import java.util.*;
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;
}
return answer;
}
}
- 실행 결과
정수에 ““를 더해 문자열로 바꾼 뒤, 배열의 크기를 지정한 후 반복문을 돌린다.
이 경우 위에 코드보다 실행 시간이 오래 걸린다..
찾아보니 ““+n 할 경우 자바 내부적으로 StringBuffer가 생성eho서, new StringBuffer 후 append 한 거랑 똑같은 거라고 한다.😵
공유하기
Twitter Google+ LinkedIn
댓글남기기