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

정병웅·2023년 1월 31일
0

알고리즘 스터디

목록 보기
6/14

문제 설명

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

코드 설명

import java.util.*;
import java.util.stream.Stream;
class Solution {
    public int[] solution(long n) {
        int[] answer = {};
        int[] nArray = Stream.of(String.valueOf(n).split("")).mapToInt(Integer::parseInt).toArray();
        int[] nArray2 = Stream.of(String.valueOf(n).split("")).mapToInt(Integer::parseInt).toArray();
        for(int i=nArray.length-1, j=0;i>=0;i--,j++){
            nArray2[j] = nArray[i];
        }
        return nArray2;
    }
}
  1. nArray를 두개 생성한 이유는 원본 배열 값에서 reverse 할 array에 값을 바꿔넣기 위해서다.
  2. 정수 n 을 int[] 로 변환 하는게 핵심

다른 좋은 예시 코드

import java.util.stream.IntStream;

class Solution {
    public int[] solution(long n) {
        return new StringBuilder().append(n).reverse().chars().map(Character::getNumericValue).toArray();
    }
}

-> 내 코드처럼 배열 객체를 두번 생성하지 않고, stringbuilder를 사용하여서 기존 문자열에 이어 붙여서 결국 메모리 효율성이 높을 것이다.
-> 코드의 가독성이 끝내준다,,,
->Character::getNumericValue 의 의미는 숫자 형태의 char 형을 int 형으로 변환
매개변수 char : 변환하고자 하는 char 형 숫자
반환 값 int : 변환된 int형 숫자

profile
인생은 IT 노가다

0개의 댓글