본문 바로가기

프로그래머스(Java)/Level 1

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

728x90

코드 힌트

첫 번째 접근 방식: 나머지 연산자를 활용해서 문제 풀기

  1. 숫자 n의 길이를 구하기
    • 숫자 n을 문자열로 변환하여 그 길이를 구합니다.
  2. 결과 배열 생성
    • 구한 길이만큼의 배열을 생성합니다.
  3. 숫자의 각 자리수를 배열에 저장하기
    • for 루프를 사용하여 숫자의 각 자리수를 배열에 저장합니다.
    • n % 10을 사용하여 현재 자리수를 구하고, n /= 10을 사용하여 다음 자리수로 이동합니다.
  4. 결과 배열 반환
    • 최종적으로 결과 배열을 반환합니다.

두 번째 접근 방식: n을 문자열로 활용하여 문제 풀기

  1. 숫자 n을 문자열로 변환
    • 숫자 n을 문자열로 변환합니다.
  2. 문자열 뒤집기
    • 문자열을 뒤집기 위해 StringBuilder를 사용합니다.
  3. 문자열을 배열로 변환
    • 뒤집은 문자열을 각 문자를 분리하여 문자열 배열에 저장합니다.
  4. 문자열 배열을 정수 배열로 변환
    • 문자열 배열을 순회하며 각 문자를 정수로 변환하여 결과 배열에 저장합니다.
  5. 결과 배열 반환
    • 최종적으로 결과 배열을 반환합니다.

 

 


정답은 더보기 클릭

더보기

1. 나머지 연산자

class Solution {
    public int[] solution(Long n) {
        // 숫자 n을 문자열로 변환한 후, 길이를 구하여 len에 저장
        int len = Long.toString(n).length();
        
        // 결과를 저장할 배열을 길이 len만큼 생성
        int[] result = new int[len];
        
        // 숫자의 각 자리수를 배열에 저장
        for (int i = 0; i < len; i++) {
            // 현재 자리수의 숫자를 result 배열에 저장
            result[i] = (int) (n % 10);
            // n을 10으로 나누어 다음 자리수로 이동
            n /= 10;
        }
        
        // 결과 배열 반환
        return result;
    }
}

 

2. 문자열 StringBuilder 사용

class Solution {
    public int[] solution(Long n) {
        // 숫자 n을 문자열로 변환
        String s = Long.toString(n);
        // 문자열을 뒤집기 위해 StringBuilder 사용
        StringBuilder sb = new StringBuilder(s);
        
        // 문자열을 뒤집고 각 문자를 분리하여 문자열 배열에 저장
        String[] strArr = sb.reverse().toString().split("");
        // 결과를 저장할 정수 배열 생성
        int[] result = new int[strArr.length];
        
        // 문자열 배열을 순회하며 각 문자를 정수로 변환하여 결과 배열에 저장
        for (int i = 0; i < strArr.length; i++) {
            result[i] = Integer.parseInt(strArr[i]);
        }
        
        // 결과 배열 반환
        return result;
    }
}
728x90