본문 바로가기

programmers-코딩테스트 연습/Level 1. 자바

2021-06-10 / 자연수 뒤집어 배열로 만들기

문제 설명

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

 

제한 조건

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

입출력 예

n return
12345 [5, 4, 3, 2, 1]

 

초기 코드

class Solution {
    public int[] solution(long n) {
        int[] answer = {};
        return answer;
    }
}

 

정답 코드

class Solution { 
    public int[] solution(long n) { 
        String str = ""+n; 
        int len = str.length(); 
        int[] answer = new int[len]; 
        
        for(int i=0; i<len;i++) {
            answer[i] = (int)(n%10);
            n/=10; 
        } 
        return answer; 
    } 
}

 

코드 설명

정수 + 문자열은 값이 문자열로 계산된다.

문자열로 바뀐 str로 length() 메소드를 사용하여 길이를 알아낸 후 동적 할당을 통해 answer를 선언한다. 이때 방의 크기는 알아낸 길이로 잡는다.

answer의 각 방은 n을 10으로 나눠준 나머지를 넣는다. 이때 n은 long형이기 때문에 int형으로 형변환을 해준다.

이 문제는 자연수를 뒤집어서 배열에 넣는 문제인데 끝자리부터 계산하기 때문에 별도로 뒤집진 않는다.

n을 10으로 나눈 나머지를 answer에 담은 후 다음 자리를 계산하기 위해 10으로 나눈 값을 다시 n에 넣는다. 

 

 

 

 

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

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

programmers.co.kr