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

최지나·2023년 9월 22일
0

코딩테스트

목록 보기
11/154

문제

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

제한 조건
n은 10,000,000,000이하인 자연수입니다.

입출력 예

nreturn
12345[5,4,3,2,1]

문제 출처

https://school.programmers.co.kr/learn/courses/30/lessons/12932

생각

  • 문자로 바꾼 뒤 split으로 쪼개고, 루프를 거꾸로 돌면서 return 하자

코드

class Solution {
    public int[] solution(long n) {
        
        String[] stringNList = String.valueOf(n).split("");
        int[] answer = new int[stringNList.length];
        for (int i = 0; i < stringNList.length; i++){
            answer[i] = Integer.parseInt(stringNList[stringNList.length - i - 1]);
        }

        return answer;
    }
}

다른 사람의 풀이


class Solution {
  public int[] solution(long n) {
      String s = String.valueOf(n);
      StringBuilder sb = new StringBuilder(s);
      sb = sb.reverse();
      String[] ss = sb.toString().split("");

      int[] answer = new int[ss.length];
      for (int i=0; i<ss.length; i++) {
          answer[i] = Integer.parseInt(ss[i]);
      }
      return answer;
  }
}
  • 문제를 푼 방식은 유사하나, reverse()를 사용해서 string을 뒤집은 것이 인상 깊었다. 🤓
  • 다만 reverse() 메서드는 String에는 적용할 수 없고, StringBuilder에만 적용할 수 있기에 long -> String -> StringBuilder -> String 변환 과정이 필요하다는 점에서 코드의 복잡도 및 실행 속도는 비슷하였다.
profile
의견 나누는 것을 좋아합니다 ლ(・ヮ・ლ)

0개의 댓글