문제설명
자연수 n을 뒤집어 각 자리 숫자를 원소로 가지는 배열 형태로 리턴해주세요. 예를들어 n이 12345이면 [5,4,3,2,1]을 리턴합니다.
제한조건
- n은 10,000,000,000이하인 자연수입니다
입출력 예
n | return |
12345 | [5,4,3,2,1] |
정답 코드
import java.util.ArrayList;
class Solution {
public int[] solution(long n) {
ArrayList<Long> answer = new ArrayList<>();
while (n != 0){
answer.add(n % 10);
n /= 10;
}
return answer.stream().mapToInt(Long::intValue).toArray();
}
}
여기서 관건은 int[] 리턴타입과 매개변수 long n 이다.
n이 어떤수가 주어질지 모르기 때문에 가변길이인 List 선언
자연수 맨 끝 자리를 List의 맨 앞에 넣어야하기 때문에 n % 10으로 맨 끝자리 추출
List.add(n % 10) 으로 추출한 수를 List의 처음에 넣어줌
추출한 맨 끝자리는 빼고 반복 진행을 해야하기 때문에 n /= 10으로 없애준다.
List를 int[]로 리턴해주기 위해 변환
answer.stream().mapToInt(Long::intValue).toArray()
'알고리즘' 카테고리의 다른 글
프로그래머스 입문) 각도기 (0) | 2024.09.04 |
---|