Algorithm/프로그래머스

[LV.1]자연수 뒤집어 배열로 만들기

녱녱 2023. 1. 7.

📚 문제 설명

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

❗ 제한 조건

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

✏ 작성한 코드

class Solution {
    public int[] solution(long n) {
        String a = "" + n;        
        int[] answer = new int[a.length()];        
        int cnt = 0;
        
        while (n > 0) {
            answer[cnt] = (int) (n % 10);
            n /= 10; 
            cnt++;
        }      
        return answer;
    }
}

🤔 느낀점

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 0 out of bounds for length 0

이 오류를 만나서 반성하려고 정리한다...

인덱스가 배열의 크기보다 크거나 음수가 나올 때 발생하는 예외 코드인데 도대체 이게 왜 뜰까하고 고민해봤더니

int[] answer = {}; 이라고 주어진 상태에서 아무 수정없이 냅다 코드를 작성한 것 아니겠냐며...

미친거 아니야???하면서 스타벅스에서 부끄러운줄도 모르고 머리를 내리쳤다 진짜 똥멍청이

array는 반드시 배열 크기를 지정해주고 사용해야 한다

너무 기본적인거 아니냐고 진짜 정신 붙잡자 반성해

 

댓글