프로그래머스 - 자연수 뒤집어 배열로 만들기 [java]
자연수 뒤집어 배열로 만들기
문제 설명
자연수 n을 뒤집어 각 자리 숫자를 원소로 가지는 배열 형태로 리턴해주세요. 예를들어 n이 12345이면 [5,4,3,2,1]을 리턴합니다.제한 조건
n은 10,000,000,000이하인 자연수입니다.
Solution 1
public int[] solution(long n) {
String str = String.valueOf(n);
char[] s = str.toCharArray();
int[] answer = new int[str.length()];
for(int i=str.length()-1;i>=0;i--) {//뒤집어서 입력
answer[str.length()-1-i] = str.charAt(i)-'0';
}
return answer;
}
str.charAt(i)만 입력하면, [53, 52, 51, 50, 49] 이렇게 입력이 된다. 이유는 char형을 int형으로 형변환하면 아스키코드값으로 변환되기 때문에, 문자 '1'을 int형으로 변환하면 아스키코드 값인 49로 변환된다. 1을 가지기 위해서는 아스키코드값이 48인 '0'을 빼줘야한다. 49에서 48을 빼서 1을 얻게 된다. '2'는 아스키코드 값이 50, '3'은 51, '4'는 52, '5'는 53이다. 그래서 아스키코드값이 48인 '0'을 각자 빼주면, 1,2,3,4,5 원하는 값을 얻게 된다.
Solution 2
public int[] solution2(long n) {
String s =""+n; //String에 n 추가
int[] answer = new int[s.length()];//입력받은 숫자의 길이만큼
int cnt=0;
while(n>0) {
answer[cnt]=(int)(n%10);//12345 -> 나머지 5 -> 4 -> 3 -> 2 ->1
n/=10; // n=1234 -> 123 -> -> 12 -> 1
cnt++;
}
return answer;
}
간단하게 %와 /= 이용해서 원하는 값을 얻을 수 있다.
Ref:
https://cokes.tistory.com/80
Author And Source
이 문제에 관하여(프로그래머스 - 자연수 뒤집어 배열로 만들기 [java]), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@stella317/프로그래머스-자연수-뒤집어-배열로-만들기저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)