[프로그래머스/Java] Lv.1 자연수 뒤집어 배열로 만들기

이은정·2024년 8월 1일

프로그래머스/Java

목록 보기
4/74

문제

로직

위 문제는 모든 자릿수를 배열에 넣기 위하여 우선 배열의 길이를 알아야 한다. 그래서 숫자를 string으로 변환하여 배열의 길이를 먼저 구한다.
그 후에 n이 10이 될 때까지 n을 10으로 나눈 나머지를 배열에 순서대로 삽입하고 n/10을 진행한다.

코드

class Solution {
    public int[] solution(long n) {
        String w = Long.toString(n);
        
        int[] answer = new int[w.length()];
        for (int i = 0; n > 0; i++) {
            answer[i] = (int)(n % 10);
            n /= 10;
        }
        
        return answer;
    }
}

결과

막혔던 점

처음에는 answer[i] = (int)n%10;을 해주었다.
위 코드는 n을 int 형으로 먼저 변환해준 후에 10을 나눈 나머지를 answer[i]에 저장해준다.
n이 10,000,000,000이하인 자연수인데 int 자료형으로는 10,000,000,000까지 표현할 수 없어서 테스트 케이스 3개를 틀렸다.

그래서 int로 표현이 될 수 있도록 n%10을 먼저 실행한 후에 int형으로 변환해 주었다.

깨달은 점

항상 자료형의 범위를 잘 보고 변환이 가능한지 체크를 해봐야 한다는 것을 깨달았다.
그리고 만약 n이 100,000,000,000보다 크다는 조건으로 바뀌면 해당 로직은 사용할 수 없을 것 같다.

profile
돈 많은 백수가 꿈인 백엔드 개발자 지망생

0개의 댓글