코테 - 자연수 뒤집어 배열로 만들기

Mixer·2023년 11월 21일
0

문제 설명
자연수 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) {
        
        String s = String.valueOf(n);
        
        int[] answer = new int[s.length()];
        
        for(int i = 0; i < answer.length; i++) {
            answer[i] = Integer.parseInt(s.substring(answer.length-1-i, answer.length-i));
        }
        return answer;
    }
}

포인트는 String 문자열로 바꾸는 String.valueOf를 통해 자연수를 문자열로 사용하게 바꾸는 것!
이후 반복문을 이용해 문자를 다시 Integer.parseInt()로 Parsing 하여 각 배열 요소에 저장한다.

다른 사람들의 풀이

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;
        System.out.println(n);
        cnt++;
    }
    
    return answer;
  }
}

"" + n 할 경우 Java 내부적으로 StringBuffer가 생성된다.
"" + n 같은 경우, 따지고 보면 new StringBuffer() 후, append 한 것과 같은 원리!
이후 숫자를 10으로 나눈 나머지, 즉 1보다 크면 1의 자리를 반환하는 규칙을 이용하여,
배열의 인덱스 순서에 맞게 숫자를 뒤집어 넣어주게 된다.

profile
Minthug'life

0개의 댓글