반응형
문제 링크
코딩테스트 연습 - 자연수 뒤집어 배열로 만들기 | 프로그래머스 (programmers.co.kr)
문제 풀이
1번 풀이
public int[] solution(long n) {
int len = (""+n).length();
int[] arr = new int[len];
for(int i=0; i<len; i++) {
arr[i] = (int)(n%10);
n/=10;
}
return arr;
}
그러므로 자연수 n의 길이를 반환할 배열의 크기로 정한다.
자연수 n의 길이만큼 반복적으로 일의자리를 구하여 배열에 순서대로 저장한다.
예시1. 자연수 n = 12345
✳️ n=12345, 일의자리: 5
✳️ n=1234, 일의자리: 4
✳️ n=123, 일의자리: 3
✳️ n=12, 일의자리: 2
✳️ n=1, 일의자리: 1- 일의자리를 구한 순서대로 배열에 삽입한 결과: 54321
예시2. 자연수 n = 79513
✳️ n=79513, 일의자리: 3
✳️ n=7951, 일의자리: 1
✳️ n=795, 일의자리: 5
✳️ n=79, 일의자리: 9
✳️ n=7, 일의자리: 7- 일의자리를 구한 순서대로 배열에 삽입한 결과: 31597
테스트 처리 속도
- 🔥 0 ~ 1ms
2번 풀이
public int[] solution(long n) {
return new StringBuilder(String.valueOf(n)).reverse().chars().map(ch -> ch - '0').toArray();
}
public StringBuilder reverse()
문자 시퀀스를 반대로 뒤집는다.default IntStream chars()
문자 시퀀스를 IntStream 으로 변환한다.map(ch -> ch - '0')
chars() 를 통해 변환된 IntStream 은 문자를 변환한 것이므로 0을 변환해도 정수 0이 아닌 문자 '0' 이다.
그러므로 정수로 변환하기 위해서ch - '0'
을 해야 한다.
테스트 처리 속도
- 🔥 38 ~ 40ms
반응형
'Algorithm > Java' 카테고리의 다른 글
프로그래머스 - 문자열 내 p와 y의 개수 java :: 12916 (0) | 2022.06.10 |
---|---|
프로그래머스 - 이상한 문자 만들기 java :: 12930 (0) | 2022.02.12 |
프로그래머스 - 콜라츠 추측 java (0) | 2022.02.08 |
프로그래머스 - 정수 제곱근 판별 java :: 12934 (0) | 2022.01.11 |
프로그래머스 - 짝수와 홀수 java (0) | 2022.01.09 |