728x90
반응형
[문제]
함수 solution은 정수 n을 매개변수로 입력받습니다. n의 각 자릿수를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요. 예를들어 n이 118372면 873211을 리턴하면 됩니다. <제한 조건> n은 1이상 8000000000 이하인 자연수입니다. |
입출력 예
n | return |
118372 | 873211 |
[나의 풀이]
import java.util.Arrays;
class Solution {
public long solution(long n) {
long answer = 0;
String[] nn = String.valueOf(n).split("");
Arrays.sort(nn);
StringBuilder result = new StringBuilder();
for (String num : nn) result.append(num);
answer = Long.parseLong(result.reverse().toString());
return answer;
}
public static void main(String[] args){
Solution rs = new Solution();
}
}
[다른 사람의 풀이]
public class ReverseInt {
String res = "";
public int reverseInt(int n){
res = "";
Integer.toString(n).chars().sorted().forEach(c -> res = Character.valueOf((char)c) + res);
return Integer.parseInt(res);
}
// 아래는 테스트로 출력해 보기 위한 코드입니다.
public static void main(String[] args){
ReverseInt ri = new ReverseInt();
System.out.println(ri.reverseInt(118372));
}
}
전체적으로 고급 문법이 많이 쓰인 것 같다. 보고 배워야지.
forEach 정도는 바로 적용할 수 있을 것 같다.
이렇게도 간결하게 결과를 낼 수 있구나 놀랐다.
반응형
'alorithm > programmers' 카테고리의 다른 글
[JAVA/프로그래머스] Lv1. 문자열을 정수로 바꾸기 (0) | 2023.04.13 |
---|---|
[JAVA/프로그래머스] Lv1. 두 정수 사이의 합 (0) | 2023.04.13 |
[JAVA/프로그래머스] Lv1. 나머지가 1이 되는 수 찾기 (0) | 2023.04.11 |
[JAVA/프로그래머스] Lv1. x만큼 간격이 있는 n개의 숫자 (0) | 2023.04.11 |
[JAVA/프로그래머스] Lv1. 자릿수 더하기 (0) | 2023.04.11 |