코딩 정복 가즈아~
Home
  • 분류 전체보기 (159)
    • 알고리즘 풀이 (149)
      • 프로그래머스 (89)
      • 백준 (59)
    • 취준 일기 (6)
    • 네트워크 정리 (1)
Home
  • 분류 전체보기 (159)
    • 알고리즘 풀이 (149)
      • 프로그래머스 (89)
      • 백준 (59)
    • 취준 일기 (6)
    • 네트워크 정리 (1)
블로그 내 검색

코딩 정복 가즈아~

(っ◔◡◔)っ ♥ 2021 취뽀하자!! ♥

  • 알고리즘 풀이/프로그래머스

    [level1] 프로그래머스 - 자연수 뒤집어 배열로 만들기(JAVA)

    2021. 8. 31.

    by. 데롱디롱

    728x90
    StringBuilder를 이용하는 방법과 계속 10씩 나누는 방법
    두 가지 방법으로 풀어보았다.

     

     

    (1) StringBuilder의 reverse()를 사용하는 방법

    class Solution {
        public int[] solution(long n) {
            StringBuilder sb = new StringBuilder(n + "");
            sb.reverse();
            int[] answer = new int[sb.length()];
            for (int i = 0; i < answer.length; i++) 
                answer[i] = sb.charAt(i) - '0';
    
            return answer;
        }
    }

     

    아무래도 문자열을 뒤집는 것에서 시간이 너무 오래 걸리는 것 같았다...

     

     

    (2) 숫자를 10으로 나누면서, 뒤에서 부터 넣어주는 방법
          ㄴ 아직 숫자가 몇개로 이루어져있는지 몰라서, ArrayList에 넣고 마지막에 이것을 배열로 바꿔주었다.

    import java.util.ArrayList;
    
    class Solution {
        public int[] solution(long n) {
            ArrayList<Integer> num = new ArrayList<Integer>();
            while (n > 0) {
            	num.add((int) (n % 10));
                n /= 10;
            }
            return num.stream().mapToInt(i -> i).toArray();
        }
    }

     

    숫자의 각 자리 숫자를 접근하다보면 10으로 나눈 나머지를 접근하게 되므로 가장 마지막 숫자부터 접근하게 된다.

    그럼 결국 이 숫자를 그대로 배열에 넣어주면 되는 것이라

    아주 간단하게 해결이 된다!!

    시간도 훨씬 적게 걸렸다!!

     

     

    바보같이 굳이 1번 방법인, reverse()를해서 시간을 많이 잡아먹었다...

    저작자표시 (새창열림)

    '알고리즘 풀이 > 프로그래머스' 카테고리의 다른 글

    [level1] 프로그래머스 - 정수 제곱근 판별(JAVA)  (0) 2021.08.31
    [level1] 프로그래머스 - 정수 내림차순으로 배치하기(JAVA)  (0) 2021.08.31
    [level1] 프로그래머스 - 자릿수 더하기(JAVA)  (0) 2021.08.31
    [level1] 프로그래머스 - 이상한 문자 만들기(JAVA)  (0) 2021.08.31
    [level1] 프로그래머스 - 약수의 합(JAVA)  (0) 2021.08.31

    댓글

    관련글

    • [level1] 프로그래머스 - 정수 제곱근 판별(JAVA) 2021.08.31
    • [level1] 프로그래머스 - 정수 내림차순으로 배치하기(JAVA) 2021.08.31
    • [level1] 프로그래머스 - 자릿수 더하기(JAVA) 2021.08.31
    • [level1] 프로그래머스 - 이상한 문자 만들기(JAVA) 2021.08.31
    맨 위로
전체 글 보기
Tistory 로그인
Tistory 로그아웃
로그아웃 글쓰기 관리

Today

Total

피할 수 없다면, 순간을 즐겨라

Designed by Nana
블로그 이미지
데롱디롱
희희.. (๑′ᴗ‵๑)

티스토리툴바