코테/프로그래머스

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

imname1am 2023. 2. 25. 17:57
반응형

🔺 문제

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

🔺 코드

import java.util.*;

class Solution {
    public int[] solution(long n) {
        // long -> String[]으로 변환
        String[] str = Long.toString(n).split("");
        
        int[] answer = new int[str.length];
        
        for(int i=0 ; i < str.length ; i++) {
            answer[str.length - 1 - i] = Integer.parseInt(str[i]);
        }
                
        return answer;
    }
}

쉬운데 괜히 전날에 이거 푼다고 시간을 많이 써버렸다... 오늘 하니까 또 금방 풀리넹,,,

 

1. 숫자를 String[] 배열로 변환했다.

2. str 배열의 원소들이 answer의 뒤쪽부터  들어가게 했다.


🔺 다른 풀이들

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

class Solution {
  public int[] solution(long n) {
      String s = String.valueOf(n);
      StringBuilder sb = new StringBuilder(s);
      sb = sb.reverse();
      String[] ss = sb.toString().split("");

      int[] answer = new int[ss.length];
      for (int i=0; i<ss.length; i++) {
          answer[i] = Integer.parseInt(ss[i]);
      }
      return answer;
  }
}

많이들 StringBuilder를 사용하셨다.

나머지 흐름은 나랑 비슷

.reverse() : 역순

 

class Solution {
  public int[] solution(long n) {
      int length = Long.toString(n).length();
      int[] answer = new int[length];

      for (int i = 0; i < length; i++) {
          answer[i] = (int) (n % 10);
          n /= 10;
      }

      return answer;
  }
}

직접 자릿수 계산해서 구한 방법도 있었다.

반응형