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

금은체리·2023년 12월 5일
0

알고리즘

목록 보기
4/5

문제 설명

자연수 n을 뒤집어 각 자리 숫자를 원소로 가지는 배열 형태로 리턴해주세요. 예를들어 n이 12345이면 [5,4,3,2,1]을 리턴합니다.

제한 조건

n은 10,000,000,000이하인 자연수입니다.

입출력 예

nreturn
12345[5,4,3,2,1]

나의 풀이

class Solution {
    public int[] solution(long n) {
        int[] answer = new int[(int) n];
        
        for(int i = 0; i < answer.length; i++) {
            if (answer[i+1] > answer[i]){
                answer[i] = answer[i+1];
            }
        }
        
        return answer;
    }
}
  • 구현 실패
    Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 12345 out of bounds for length 12345
    at Solution.solution(Unknown Source)
    at SolutionTest.lambdamain$0(Unknown Source) at SolutionTestSolutionRunner.run(Unknown Source)
    at SolutionTest.main(Unknown Source)
    테스트 결과 (~˘▾˘)~
    1개 중 0개 성공

참고한 풀이

class Solution {
  public int[] solution(long n) {
 
        // 문자열(String) + 숫자 = 문자열(String)
        String a = "" + n;
        
        int[] answer = new int[a.length()];
        
        int cnt = 0;
        
        while (n > 0) {
 
            // 1) 12345 % 10 = 5
            // 2) 1234 % 10 = 4
            // 3) 123 % 10 = 3
            // 4) 12 % 10 = 2
            // 5) 1 % 10 = 1
            answer[cnt] = (int) (n % 10);
 
            // 12345 = 1234
            // 1234 = 123
            // 123 = 12
            // 12 = 1
            // 1 = 0 ( 0.1 )
            n /= 10;
 
            cnt++;
        }      
        return answer;
  }
}

새롭게 알게된 점

  1. 문자열(String) + 숫자 = 문자열(String)
    • String a = "" + n;
  2. int의 길이 구하기
    • int[] answer = new int[a.length()];
profile
전 체리 알러지가 있어요!

0개의 댓글