Hayden's Archive

[알고리즘] 프로그래머스 : 자연수 뒤집어 배열로 만들기 본문

Algorithm

[알고리즘] 프로그래머스 : 자연수 뒤집어 배열로 만들기

_hayden 2020. 5. 15. 23:55

알고리즘 문제 출처 : https://programmers.co.kr/learn/courses/30/lessons/12932

 

코딩테스트 연습 - 자연수 뒤집어 배열로 만들기

자연수 n을 뒤집어 각 자리 숫자를 원소로 가지는 배열 형태로 리턴해주세요. 예를들어 n이 12345이면 [5,4,3,2,1]을 리턴합니다. 제한 조건 n은 10,000,000,000이하인 자연수입니다. 입출력 예 n return 12345

programmers.co.kr

 


내가 작성한 코드

먼저 long형으로 입력되는 인자값 n을 String형으로 바꿔줘서 temp라는 이름을 부여했다. 그 문자열 길이만큼 answer라는 int[] 배열을 생성했고 temp의 마지막 인덱스값부터 출발, answer는 0번째 인덱스값부터 출발하여 temp의 원소를 answer의 원소로 저장했다. 이 때 temp의 원소를 substring()을 통해 잘라서 int형으로 변환해서 넣었다.

n이 10,000,000,000 이하의 자연수라고 하나 어차피 자릿수를 배열로 만드는 것이므로 결과적으로 for문은 최대 11번 돌게 된다.(반복문을 10,000,000,000번 돌게 된다면 그건 다시 코드를 재고해봐야겠지.)

class Solution {
    public int[] solution(long n) {
		String temp = Long.toString(n);
		int[ ] answer = new int[temp.length()];
		int j = 0;
		for(int i = temp.length()-1; i >= 0; i--) {
			answer[j++] = Integer.parseInt(temp.substring(i, i+1));
		}
        return answer;
    }
}

 

다른 사람의 코드

StringBuilder 클래스의 reverse()로 뒤집고 String 클래스의 split()에 ""을 인자값으로 줘서 잘라줄 수 있다.

StringBuilder sb = new StringBuilder(s);
sb = sb.reverse();
String[] ss = sb.toString().split("");