본문 바로가기
프로그래머스 문제풀어보기

[Lv.0] 자연수 뒤집어 배열로 만들기

by dantriss 2022. 10. 11.

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

 

 

 

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

 

제한 조건

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

 

import java.util.*;


class Solution {
    public int[] solution(long n) {
        List<Integer> list  = new ArrayList<>();
        while(n!=0) {
            list.add((int)(n%10));
            n/=10;
        }
        
        int[] answer = new int[list.size()];
        for(int i=0; i<list.size(); i++) {
            answer[i] = list.get(i);   
        }
        return answer;
    }
}

util.list를 사용하기 위해 java.util.list;  또는 java.util.*;를 해준다

인터페이스 list선언 (List<Integer> list  = new ArrayList<>();)

list에 자연수n을 10으로 나눈 나머지값을 형변환해서 저장  (list.add((int)(n%10));)

 ex) 자연수 123일경우 10으로 나눈 나머지 값은 12.3 -> 3을 list 0번째에 저장 [3]

그 후 자연수 n을 10으로 나누고 소수점을 버린다(자연수 n은 long 타입) (n/=10;)

위에 방법을 자연수 n이 0일때 까지 반복문 while을 이용해 반복한다 (while(n!=0))

 

배열 answer 선언 list의 size 만큼만 (int[] answer = new int[list.size()];)

int타입의 i가 0번째 부터 list의size만큼보다 작게 (<=아님 주의, 0부터 시작하기때문에) 그 후 후위연산자에 의해 식을 사용 후 i에 1을 저장한다 (for(int i=0; i<list.size(); i++))

배열 answer에 [i]번째 에 list에(i)번째를 get해서 가져온다  answer[i] = list.get(i);

반복문 for문을 이용해 list의 사이즈까지만 반복 후

배열 answer를 반환한다 (return answer;)

 

 

 

 

 

'프로그래머스 문제풀어보기' 카테고리의 다른 글

[Lv.0] 특정 문자 제거하기  (0) 2023.02.17
[Lv.0] 문자열 내 p와 y의 개수  (0) 2022.10.12
[Lv.0] 정수 제곱근 판별  (0) 2022.10.10
[Lv.0] 자릿수 더하기  (2) 2022.10.08
[Lv.0] 약수의 합  (0) 2022.10.06

댓글