프로그래머스 : 자연수 뒤집에 배열로 만들기

Digeut·2023년 7월 2일
0

프로그래머스

목록 보기
74/164

❔문제설명

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

🤔아이디어

n을 잘라서 배열로 만든 다음 역순으로 answer에 넣으면 되지 않을까?

❌틀린코드

class Solution {
    public int[] solution(long n) {
        int[] answer = {};
        long[] num = n.split("");
        for(int i = num.length - 1 ; i >= 0 ; i--){
            for(int j = 0 ; j < num.length ; j ++){
                answer[j] += num[i];
            }
        }
        
        return answer;
    }
}

🙄오류

long 타입은 불가능하다.. 아마 타입을 String 으로 바꿔서 진행해야 할것같다

💡코드풀이

class Solution {
    public int[] solution(long n) {
        String num = Long.toString(n);
        int[] answer = new int[num.length()];
        
        for(int i = num.length() - 1; i >= 0 ; i--){
            answer[num.length() - 1 - i] = num.charAt(i)- '0';
        }
        
        return answer;
    }
}

String 타입으로 n을 바꾼 다음 String 배열을 역순으로 answer로 하나씩 집어넣었다. 이때, charAt을 이용해서 String → int 타입으로 변환했다 (아스키코드를 사용했으므로 - '0'을 이용해서 숫자로 값을 변환)

✔️아스키코드

숫자: 48부터 57까지 (0부터 9까지)
영문 대문자: 65부터 90까지 (A부터 Z까지)
영문 소문자: 97부터 122까지 (a부터 z까지)

'1'의 아스키 코드 값인 49에서 '0'의 아스키 코드 값인 48을 빼면 숫자 1이 된다.

profile
개발자가 될 거야!

0개의 댓글