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;
}
}