[프로그래머스 스쿨] 코딩테스트 연습 기초 - 자연수 뒤집어 배열로 만들기

김현정·2025년 3월 6일
0

문제 설명

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

제한 조건

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

입출력 예 설명

기본 코드

class Solution {
    public int[] solution(long n) {
        int[] answer = {};
        return answer;
    }
}

내가 구현한 코드

import java.util.Collections;
import java.util.Arrays;

class Solution {
    public int[] solution(long n) {
        int[] arr = Arrays.stream(String.valueOf(n).split("")).mapToInt(Integer :: parseInt).toArray();
        
        for (int i = 0; i < arr.length / 2; i++) {
            int temp = arr[i];
            arr[i] = arr[arr.length - 1 - i];
            arr[arr.length - 1 - i] = temp;
        }
        return arr;
    }
}

다른사람이 구현한 코드

import java.util.stream.IntStream;

class Solution {
    public int[] solution(long n) {
        return new StringBuilder().append(n).reverse().chars().map(Character::getNumericValue).toArray();
    }
}

문제 해결

arr라는 정수형 배열에 스트림을 활용하여 각 자리의 숫자를 원소로 배열로 가지고 옮
그 다음 for문을 활용해 배열을 뒤짚어 줌.

개선사항

  1. 람다식으로도 표현이 되는데 확인해보기
  2. 다른 사람들이 구현한 내용 분석해보기

알게된 점

  1. int[] arr = Arrays.stream(String.valueOf(n).split("")).mapToInt(Integer :: parseInt).toArray(); -> 이것은 정수형을 정수형 배열로 바꿀때 사용하는 스트림 문법 꼭 외워놓기!
for (int i = 0; i < arr.length / 2; i++) {
            int temp = arr[i];
            arr[i] = arr[arr.length - 1 - i];
            arr[arr.length - 1 - i] = temp;
        }

이건 배열 뒤짚는 for문 외우기!

1개의 댓글

comment-user-thumbnail
2025년 3월 6일

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

답글 달기