◇ 문제 설명
자연수 n을 뒤집어 각 자리 숫자를 원소로 가지는 배열 형태로 리턴해주세요. 예를들어 n이 12345이면 [5,4,3,2,1]을 리턴합니다.
◇ 제한 조건
- n은 10,000,000,000이하인 자연수입니다.
◇ 입출력 예시
| n | return |
| 12345 | [5, 4, 3, 2, 1] |
◇ 초기 내용
※ [출처] 프로그래머스-코딩테스트 연습-문제명
※ 초기 내용을 참고하여 문제에 맞는 코드를 작성하세요.
class Solution {
public int[] solution(long n) {
int[] answer = {};
return answer;
}
}
◇ 답안
class Solution {
public long[] solution(long n) {
long cpn = n;
int cnt = 0;
while(cpn!=0){
cpn/=10;
cnt++;
}
long[] answer = new long[cnt];
int i = 0;
while(n!=0){
answer[i] = n%10;
n/=10;
i++;
}
return answer;
}
}
◇ 답안 힌트
▶ n의 제한 조건이 10,000,000,000이하인 정수로, int형의 범위를 넘기 때문에 n을 계산하기 위해서는 answer또한 long형이어야 합니다.
▶ n의 값이 2번 바뀌므로, n의 복사본을 준비합니다.
◇ 답안 풀이
(※ 실행 흐름 순으로 해석됩니다.)
class Solution {
//return하는 answer의 type이 long형이므로 solution의 return타입을 long형으로 변환
public long[] solution(long n) {
//n의 복사본 cpn
long cpn = n;
//n의 자릿수를 계산하는 cnt
int cnt = 0;
//n을 10씩 떼어내어, n의 자릿수를 구하는 코드
while(cpn!=0){
cpn/=10;
cnt++;
}
//n의 자릿수만큼 long형 배열 생성
long[] answer = new long[cnt];
//n에서 한자리씩 떼어 answer에 저장
int i = 0;
while(n!=0){
answer[i] = n%10;
n/=10;
i++;
}
return answer;
}
}
◇ 실행결과

◇ 출처
https://programmers.co.kr/learn/challenges
코딩테스트 연습
기초부터 차근차근, 직접 코드를 작성해 보세요.
programmers.co.kr
'코딩테스트 > Java' 카테고리의 다른 글
| [Level1] 행렬의 덧셈 답안 및 풀이 (0) | 2021.07.14 |
|---|---|
| [Level1] 문자열 내 마음대로 정렬하기 답안 및 풀이 (0) | 2021.07.14 |
| [Level1] x만큼 간격이 있는 n개의 숫자 답안 및 풀이 (0) | 2021.07.13 |
| [Level1] 모의고사 답안 및 풀이 (0) | 2021.07.12 |
| [Level1] 완주하지 못한 선수 답안 및 풀이 (0) | 2021.07.12 |
댓글