본문 바로가기

Develop/Algorithm

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

반응형

✏️ 문제

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

 

✏️문제 설명

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

 

✏️제한사항

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

 

✏️입출력 예

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

 


1) 시도 : 100점

import java.util.*;
class Solution {
    public int[] solution(long n) {
        int[] arrNum = Arrays.asList(String.valueOf(n).split("")).stream().mapToInt(Integer::parseInt).toArray();
    
        int[] newArr = new int[arrNum.length];
        for(int i=0; i<arrNum.length; i++){
            newArr[i] = arrNum[arrNum.length-1-i];
        }
        return newArr;
    }
}

2) 다른 사람 풀이 참조 

class Solution {
  public int[] solution(long n) {
      String a = "" + n;
			// String a = String.valueOf(n);
        int[] answer = new int[a.length()];
        int cnt=0;

        while(n>0) {
            answer[cnt]=(int)(n%10);
            n/=10;
         
            cnt++;
        }
      return answer;
  }
}

3) 셀프 피드백

이전에 올린 문제와 유사하다. 나는 문자열로 변환한뒤에 한자리씩 split해주고 List로 바꾼뒤, stream 을 이용하여 int 정수형으로 바꾼 배열을 만든뒤에, 그 길이와 같은 배열을 만들고, 하나씩 포문을 이용하여 뒤에 자리부터  할당해주었다. 

다른 사람의 모범 풀이는 저번처럼 10으로 나눠서 1의자리 합을 구하여 앞에서부터 마지막 자리수인 1의 자리를 넣어주는 방식으로 작성하였다. 

반응형