Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- map
- date
- 스프링 클라우드
- Spring Cloud
- 도커
- leetcode
- Java
- SpringBoot
- GIT
- gitlab
- jQuery
- Spring
- 자바스크립트
- 코딩테스트
- docker
- JS
- 스프링부트
- spring boot
- map()
- 프로그래머스
- 자바
- IntelliJ
- 스프링
- JavaScript
- spring security
- STS
- OAuth
- 비동기
- 유레카
- EUREKA
Archives
- Today
- Total
RATSENO
[JAVA]프로그래머스(level1) - 정수 내림차순으로 배치하기 본문
문제설명
함수 solution은 정수 n을 매개변수로 입력받습니다. n의 각 자릿수를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요. 예를들어 n이 118372면 873211을 리턴하면 됩니다.
제한사항
-
n은 1이상 8000000000 이하인 자연수입니다.
문제풀이
import java.util.Arrays;
import java.util.Collections;
class Solution {
public long solution(long n) {
long answer = 0;
String nStr = String.valueOf(n);
/**
* Collections.reverseOrder()를 사용하기 위해 Integer로 선언
*/
Integer[] arrs = new Integer[nStr.length()];
for (int i = 0; i < nStr.length(); i++) {
arrs[i] = nStr.charAt(i) - 48;
}
/**
* 내림차순 정렬
*/
Arrays.sort(arrs, Collections.reverseOrder());
for (int i = 0; i < arrs.length; i++) {
answer += arrs[i] * Math.pow(10, arrs.length - 1 - i);
}
return answer;
}
}
다른 사람 문제 풀이
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));
}
}
'DEV > 코딩테스트 문제풀기' 카테고리의 다른 글
[Leetcode]Palindrome Number (0) | 2020.03.15 |
---|---|
[JAVA]프로그래머스(level1) - 정수 제곱근 판별 (0) | 2020.01.06 |
[JAVA]프로그래머스(level1) - 자연수 뒤집어 배열로 만들기 (0) | 2020.01.06 |
[JAVA]프로그래머스(level1) - 자릿수 더하기 (0) | 2020.01.06 |
[JAVA]프로그래머스(level1) - 이상한 문자 만들기 (0) | 2020.01.06 |
Comments