https://school.programmers.co.kr/learn/courses/30/lessons/12932
자연수 n을 뒤집어 각 자리 숫자를 원소로 가지는 배열 형태로 리턴해주세요. 예를들어 n이 12345이면 [5,4,3,2,1]을 리턴합니다.
제한 조건
- n은 10,000,000,000이하인 자연수입니다.
import java.util.*;
class Solution {
public int[] solution(long n) {
List<Integer> list = new ArrayList<>();
while(n!=0) {
list.add((int)(n%10));
n/=10;
}
int[] answer = new int[list.size()];
for(int i=0; i<list.size(); i++) {
answer[i] = list.get(i);
}
return answer;
}
}
util.list를 사용하기 위해 java.util.list; 또는 java.util.*;를 해준다
인터페이스 list선언 (List<Integer> list = new ArrayList<>();)
list에 자연수n을 10으로 나눈 나머지값을 형변환해서 저장 (list.add((int)(n%10));)
ex) 자연수 123일경우 10으로 나눈 나머지 값은 12.3 -> 3을 list 0번째에 저장 [3]
그 후 자연수 n을 10으로 나누고 소수점을 버린다(자연수 n은 long 타입) (n/=10;)
위에 방법을 자연수 n이 0일때 까지 반복문 while을 이용해 반복한다 (while(n!=0))
배열 answer 선언 list의 size 만큼만 (int[] answer = new int[list.size()];)
int타입의 i가 0번째 부터 list의size만큼보다 작게 (<=아님 주의, 0부터 시작하기때문에) 그 후 후위연산자에 의해 식을 사용 후 i에 1을 저장한다 (for(int i=0; i<list.size(); i++))
배열 answer에 [i]번째 에 list에(i)번째를 get해서 가져온다 answer[i] = list.get(i);
반복문 for문을 이용해 list의 사이즈까지만 반복 후
배열 answer를 반환한다 (return answer;)
'프로그래머스 문제풀어보기' 카테고리의 다른 글
[Lv.0] 특정 문자 제거하기 (0) | 2023.02.17 |
---|---|
[Lv.0] 문자열 내 p와 y의 개수 (0) | 2022.10.12 |
[Lv.0] 정수 제곱근 판별 (0) | 2022.10.10 |
[Lv.0] 자릿수 더하기 (2) | 2022.10.08 |
[Lv.0] 약수의 합 (0) | 2022.10.06 |
댓글