Coding Test/Java Coding Test

[프로그래머스 / 자바] - 자연수 뒤집어 배열로 만들기

nam_ji 2024. 1. 10. 11:29

자연수 뒤집어 배열로 만들기

문제

  • 자연수 n이 매개변수로 주어집니다.
  • n의 각 자리수를 역순으로 배열에 담아 출력하는 문제입니다.


테스트 (이클립스)

  • n의 값을 String으로 만들고 answer의 크기를 String으로 만든 n의 크기로 지정합니다.
  • for문을 0부터 String타입 n의 크기만큼 순회하도록 하고
  • answer에 n을 10으로 나눈 나머지를 담습니다.
  • 이후 for문이 순회하는 동안 n을 10으로 나눈 몫으로 대체되도록 합니다.
  • while문을 사용한 풀이도 있습니다.
  • while문에서 다른 점은 for문은 answer의 원소가 담길 자리를 for문이 순회하는 값을 지정해주면 되지만
  • while문은 그렇지 않기 때문에 answer의 원소 자리를 지정할 값을 따로 지정해줘야 합니다.
package com.namji.codingtest.level0;

import java.util.Arrays;

public class NaturalNumbersUpsideDown_and_MakeArrays {
	public static void main(String[] args) {
		/*
		 * 정수 n이 매개변수로 주어집니다.
		 * n을 뒤집어 각 자리 숫자를 원소로 가진 배열을 출력하는 문제입니다.
		 * 12345 > [5,4,3,2,1]
		 */
		int n = 12345;
		String str = "" + n;
		int[] answer = new int[str.length()];
		for (int i = 0; i < str.length(); i++) {
			answer[i] = (int)n%10;
			n /= 10;
		}
//		int cnt = 0;
//		while (n > 0) {
//			answer[cnt] = (int)(n%10);
//			n /= 10;
//			cnt++;
//		}
		System.out.println(Arrays.toString(answer));
	}
}


프로그래머스 코드

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