-
프로그래머스 - 정수 내림차순으로 배치하기알고리즘 2022. 4. 23.반응형
내 풀이
import java.util.Arrays; import java.util.Collections; public class P_13 { public long sol(long n) { long ans = 0; String x = Long.toString(n); String[] arr = new String[x.length()]; for(int i=0; i<x.length(); i++) { arr[i] = x.substring(i, i+1); } Arrays.sort(arr, Collections.reverseOrder()); String asd = arr[0]; for(int i=1; i<arr.length; i++) { asd += arr[i]; } ans = Long.parseLong(asd); return ans; } public static void main(String[] args) { P_13 p = new P_13(); long n = 1234567; System.out.println(p.sol(n)); } }
Arrays의 sort 정렬 기능을 사용한 풀이
- 정렬을 사용하기 위해서 인자로 받은 long 타입의 n을 String 형으로 바꿔주고 배열에 넣어야 한다.
- 그렇게 String 형 배열을 만든 다음에 Arrays의 sort 기능을 활용해서 내림 차순 정렬을 해준다.
Arrays.sort(arr, Collections.reverseOrder()); // 내림차순 정렬
- 이제 내림 차순으로 정렬된 배열을 배열 형태가 아닌 long 형태로 바꿔줘야함.
- 자바의 문자열 더하기 기능을 이용해서 for 반복문을 돌려서 String 변수 asd에 배열의 요소를 하나씩 더해간다.
- 다 더하고 Long 형태로 형변환을 해서 return 시킨다.
다른 사람 풀이
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)); } }
import java.util.*; class Solution { public long solution(long n) { String[] list = String.valueOf(n).split(""); Arrays.sort(list); StringBuilder sb = new StringBuilder(); for (String aList : list) sb.append(aList); return Long.parseLong(sb.reverse().toString()); } }
반응형'알고리즘' 카테고리의 다른 글
프로그래머스 - 자릿수 더하기 (0) 2022.04.26 프로그래머스 - 자연수 뒤집어 배열로 만들기 (0) 2022.04.25 프로그래머스 - 정수 제곱근 판별 (0) 2022.04.23 프로그래머스 - 제일 작은 수 제거하기 (0) 2022.04.20 프로그래머스 - 최대공약수와 최소공배수 (0) 2022.01.31