[99클럽 코테 스터디 1일차 TIL] 자바 타입변환

sarah·2024년 7월 22일
0

programmers

목록 보기
1/21
post-thumbnail

문제

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

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

  • 입출력 예

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

import java.util.ArrayList;

class Solution {
    public int[] solution(long n) {
        String str = String.valueOf(n);

        ArrayList<Integer> answer = new ArrayList<>();
        for(int i=str.length() - 1; i >= 0; i--) {
            int number = Integer.parseInt(String.valueOf(str.charAt(i)));
            answer.add(number);
        }

        return answer.stream()
            .mapToInt(i -> i)
            .toArray();
    }
}

해결방안

  • long을 문자로 변환하고 역순으로 char 읽어서 숫자로 변환해서 배열에 넣기.
  • 위 생각을 코드로 적으려니 코틀린 코드로 밖에 생각이 안나고, 자바로 타입변환 어떻게 해야하는지 하나씩 검색해보면서 작성함.
  • ArryaList의 toArray()로 배열 변환시 값(int,long...)을 타입으로 가지지 못한다.

회고

  • 다른사람이 푼 답안 중 가장 깔끔해서 만족했던 코드
import java.util.stream.IntStream;

class Solution {
    public int[] solution(long n) {
        return new StringBuilder().append(n).reverse().chars().map(Character::getNumericValue).toArray();
    }
}
  • 열심히 해보자! 아좌좌!!

0개의 댓글