본문 바로가기

카테고리 없음

[프로그래머스] 자연수 뒤집어 배열로 만들기 (JAVA)

문제 출처 - Programmers

문제는 여기

 

코딩테스트 연습 - 자연수 뒤집어 배열로 만들기

자연수 n을 뒤집어 각 자리 숫자를 원소로 가지는 배열 형태로 리턴해주세요. 예를들어 n이 12345이면 [5,4,3,2,1]을 리턴합니다. 제한 조건 n은 10,000,000,000이하인 자연수입니다. 입출력 예 n return 12345

programmers.co.kr


[풀이]

1. long형의 자연수의 길이를 구하는 것이 쉽지 않아 문자열로 만들어 해당 길이만큼의 크기를 가진 배열을 만들어준다.

2. while문을 사용해 각 자릿수를 10으로 나눴을때의 나머지를 배열에 넣어준다.

3. 결과를 출력한다.

[접근]

1.  10으로 나눴을때의 나머지들을 배열에 넣어서 출력하면 되겠다고 생각하였다.

[코드]

import java.util.*;

class Solution {
    public int[] solution(long n) {
        // long의 크기를 배열로 만들기 힘드니 str로 변환
        String str = n + "";
        // str의 길이만큼으로 배열 생성
        int[] answer = new int[str.length()];
        
        // 인덱스값
        int idx = 0;

        while (n > 0) {
            // 인덱스값을 늘리면서 각 자릿수의 값을 넣기
            answer[idx++] = (int)(n % 10);
            // 이미 넣은 자릿수는 없애주기위해 10으로 나누기
            n /= 10;
        }
        
        return answer;
    }
}