[프로그래머스] 자연수 뒤집어 배열로 만들기

이한솔·2023년 9월 25일
0
post-thumbnail

✨️문제 설명

: 자연수 n을 뒤집어 각 자리 숫자를 배열 형태로 리턴

-> 자세한 내용 보러가기

🎲문제 풀이

  • 첫번째 풀이
  • class Solution {
        public int[] solution(long n) {
            String strN = String.valueOf(n);
            StringBuilder sb = new StringBuilder(strN);
            sb.reverse();
            String[] str = sb.toString().split("");
            int[] answer = new int[strN.length()];
            for(int idx = 0; idx < answer.length; idx++){
                answer[idx] = Integer.parseInt(str[idx]);
            }
            return answer;
        }
    }

    풀이 설명

    : 주어진 숫자 n을 String으로 변환하고, 변환한 String을 StringBuilder를 이용해 반전(reverse()) 시킨 후 배열로 변환

  • 두번째 풀이
  • class Solution {
        public int[] solution(long n) {
            String str = String.valueOf(n);
            //String str = "" + n;
            int[] answer = new int[str.length()];
            int idx = 0;
            while(n>0){
                answer[idx] = (int) (n % 10);
                n /= 10;
                idx++;
            }
            return answer;
        }
    }

    풀이 설명

    : 주어진 n의 길이를 구하기 위해 String으로 변환하여 길이만큼 배열 생성 : 주어진 n을 10으로 나눈 나머지를 배열 앞에서부터 채우면, 뒤집어진 자연수의 배열을 구할 수 있음

    다른 사람 풀이

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

    : new StringBuilder().append(n).reverse() : 입력된 n의 값을 StringBuilder를 이용해 문자열로 변환하고, 문자열을 뒤집는다.
    : chars() : 뒤집은 문자열을 문자 스트림으로 변환
    : map(Character::getNumericValue) : 문자 스트림의 각 문자를 정수로 변환
    -> Character::getNumericValue : 문자를 해당하는 정수 값으로 변환하는 매서드 참조
    : toArray() : 스트림의 요소들을 int 배열로 변환

    profile
    개인 공부용

    0개의 댓글