문제
https://school.programmers.co.kr/learn/courses/30/lessons/12933
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
알고리즘
문자열
풀이
1. n에 대한 문자열을 만들고, Long 배열을 만들어서 하나씩 넣어준다
2. 배열을 역순으로 정렬한다.
3. 다시 String으로 만들고 Long으로 변환해서 출력
코드
import java.util.*;
import java.util.Arrays;
class Solution {
public long solution(long n) {
StringBuilder sb = new StringBuilder();
String s = ""+n;
Long[] nums = new Long[s.length()];
for(int i=0; i<s.length(); i++)
nums[i] = Long.valueOf(s.charAt(i)-'0');
Arrays.sort(nums, Collections.reverseOrder());
for(int i=0; i<s.length(); i++)
sb.append(""+nums[i]);
long answer = Long.parseLong(sb.toString());
return answer;
}
}
다른사람 풀이
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());
}
}
String을 split하여 String 배열 생성 및 정렬하고 StringBuilder를 활용하여 reverse하는 풀이가 더 간단한 것 같다.
'Algorithm (PS) > 프로그래머스' 카테고리의 다른 글
[프로그래머스 Level 1] 짝수와 홀수 [Java] (0) | 2023.08.15 |
---|---|
[프로그래머스 Level 1] 약수의 합 [Java] (0) | 2023.08.15 |
[프로그래머스 Level 1] 자릿수 더하기 [Java] (0) | 2023.08.15 |
[프로그래머스 Level 1] 평균 구하기 [Java] (0) | 2023.08.15 |
[프로그래머스 Level 1] 나머지가 1이 되는 수 찾기 [Java] (0) | 2023.08.15 |