https://programmers.co.kr/learn/courses/30/lessons/12933
방법 1 : char[] -> long합산
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
import java.util.Arrays;
class Solution {
public long solution(long n) {
// long -> String -> char배열
char[] arrChar = (n+"").toCharArray();
// 정렬
Arrays.sort(arrChar);
// 합산
long answer = 0;
for (int i = 0; i < arrChar.length; i++) {
answer += (arrChar[i] - '0') * Math.pow(10, i);
}
return answer;
}
}
Colored by Color Scripter
|
방법 2 : long -> String -> long
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
import java.util.Arrays;
class Solution {
public long solution(long n) {
char[] arrChar = (n+"").toCharArray();
Arrays.sort(arrChar);
StringBuilder sb = new StringBuilder(new String(arrChar));
sb.reverse();
return Long.parseLong(sb.toString());
}
}
Colored by Color Scripter
|
속도 차이는 없다.
문자열 내림차순 배치 문제를 재활용 한 것이다.
'Algorithm > 프로그래머스' 카테고리의 다른 글
[프로그래머스]연습문제 : 제일 작은 수 제거하기 (level 1) (0) | 2019.11.07 |
---|---|
[프로그래머스]연습문제 : 정수 제곱근 판별 (level 1) (0) | 2019.11.07 |
[프로그래머스]연습문제 : 자연수 뒤집어 배열로 만들기 (level 1) (0) | 2019.11.07 |
[프로그래머스]연습문제 : 자릿수 더하기 (level 1) (0) | 2019.11.07 |
[프로그래머스]연습문제 : 이상한 문자 만들기 (level 1) (0) | 2019.11.07 |
댓글