TIL | [알고리즘] 자연수 뒤집어 배열로 만들기(Java)

hyemin·2022년 3월 14일
0

알고리즘

목록 보기
23/38
post-thumbnail

THINKING

  1. 배열 answer에 값을 담기 위해 n의 길이를 알아내기

    • 0이 아닐 때까지 n / 10하면서 cnt 증가시키기
    n = 123
    
    123 / 10 = 12 - cnt +1
    12 / 10 = 1 - cnt +1
    1 / 10 = 0 - cnt +1
    
    cnt = 3    
  2. int[] answer = new int[cnt]선언

  3. for (int i = 0; i < cnt; i++)동안 n의 끝자리부터 answer[i]에 집어넣기 - n % 10

내 풀이

class Solution {
    public int[] solution(long n) {
        int cnt = 0;
        long num = n;

        while (num != 0) {
            num /= 10;
            cnt++;
        }

        int[] answer = new int[cnt];

        num = n;
        for (int i = 0; i < cnt; i++) {
            answer[i] = (int) (num % 10);
            num /= 10;
        }
        return answer;
    }
}

좋아요 많이 받은 풀이(변형)

class Solution {
    public int[] solution(long n) {
        String a = "" + n;
        int[] answer = new int[a.length()];
        
        for (int i = 0; i < a.length(); i++) {
            answer[i] = (int) (n % 10);
            n /= 10;
        }        
        return answer;
  }
}

배열 answer를 선언시 필요한 길이를 long nString으로 변형해 String.length()로 길이를 구했다.

배운 것

long을 String으로 변환하기

방법1

long n;
int str = Long.toString(n)

방법2 - 좋아요 많이 받은 풀이에서 사용

long n;

// 문자열에 int나 long을 더해주면 문자열이 된다.
String str = "" +n

0개의 댓글