티스토리 뷰
728x90
https://school.programmers.co.kr/learn/courses/30/lessons/42746
프로그래머스 코딩테스트 고득점 Kit의 정렬 Level 2 문제다.
numbers를 문자열로 변환해 배열에 넣고,그 배열을 내림차순으로 정렬한다.
정렬한 순서대로 이어붙여 return하면 된다.
문자열을 이어붙이려는 경우 String의 +=보다 StringBuilder의 append를 사용하는게 훨씬 효율적이다.
(String은 +=할 때마다 새로운 주소의 객체를 생성하기 때문)
또한 입력으로 [0,0,0]이 들어올 경우 000이 return될 수 있으므로
정렬 후 가장 앞의 원소가 0이라면 그냥 0만 return한다.
import java.util.Arrays;
class Solution {
public String solution(int[] numbers) {
StringBuilder sb = new StringBuilder();
String[] str = new String[numbers.length];
for(int i=0;i<numbers.length;i++)
str[i] = String.valueOf(numbers[i]);
Arrays.sort(str, (o1, o2) -> (o2 + o1).compareTo(o1 + o2));
if(str[0].equals("0")) return "0";
for(String s : str)
sb.append(s);
return sb.toString();
}
}
728x90
'algorithm > programmers' 카테고리의 다른 글
[프로그래머스/자바] 신고 결과 받기 풀이 - 2022 KAKAO BLIND RECRUITMENT (0) | 2022.11.17 |
---|---|
[프로그래머스/자바] H-Index 풀이 (0) | 2022.11.15 |
[프로그래머스/자바] K번째수 풀이 (0) | 2022.11.15 |
[프로그래머스/자바] 다리를 지나는 트럭 풀이 (0) | 2022.11.15 |
[프로그래머스/자바] 등산코스 정하기 풀이 - 2020 KAKAO TECH INTERNSHIP (0) | 2022.11.14 |