알고리즘

알고리즘) 자연수 뒤집어 배열로 만들기(프로그래머스)

hubaek 2024. 9. 26. 10:05

문제설명

자연수 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