프로그래머스 문제(Java) No.7 <자연수 뒤집어 배열로 만들 >

오하수·2026년 1월 15일

이 문제는 자연수 n을 뒤집어서 각 자리 숫자를 원소로 가지는 형태로 바꾸는 문제이다.

자연수 n이 12345이면 5, 4, 3, 2, 1 이런식으로 반환하는 것이다. 일단 접근은 Stirng으로 하였고 .valueof()를 써서 자연수 n을 문자열로 반환하는 함수를 사용하였다. String.valueof()를 쓰면 형변환이 자유롭기 때문에 사용하면 편리하다.

for (int i = 0; i < s.length(); i++) {
                        answer[i] = s.charAt(s.length() - 1 - i) - '0';
                }

반복문은 n번 실행된다.
(i + 1)을 사용하는 이유는 첫 번째 값이 x × 1이 되도록 하기 위함이다.
(long) x로 연산 전에 형변환을 하여 곱셈이 long 타입으로 수행되게 만든다.
이는 아스키 코드에서 '5' - '0'처럼 연산 전에 타입을 바꿔 정확한 결과를 얻는 방식과 같다. 이를 통해 int 오버플로우를 방지하고 안전한 값을 저장한다. 그럼 전체 코드를 봐보자

class Solution {
        public int[] solution(long n) {
                String s = String.valueOf(n);
                int[] answer = new int[s.length()];

                for (int i = 0; i < s.length(); i++) {
                        answer[i] = s.charAt(s.length() - 1 - i) - '0';
                }

                return answer;
        }
}
public class Main {
        public static void main(String[] args) {
                Solution sol = new Solution();

                long n = 12345;
                int[] result = sol.solution(n);

                for (int i = 0; i < result.length; i++) {
                        System.out.print(result[i] + " ");
                }
        }
}

Solution 메서드를 호출하여 메서드에서 반환한 결과를 result 배열에 저장하고 반복문을 통해 배열의 모든 요소를 띄어쓰기를 기준으로 출력한다.

n = 12345인 경우 5 4 3 2 1로 출력되는 것을 볼 수 있다.

profile
오늘하루도수고하세용~

0개의 댓글