‘프로그래머스 코딩테스트 고득점 Kit’ 문제 입니다. 😀
문제 👉 <코딩테스트 연습 - 가장 큰 수 | 프로그래머스>
1. 문제
- 0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 구한다.
- 예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰 수는 6210입니다.
2. 풀이
정렬
을 이용한 문제 풀이
- 주어진 숫자 배열을 문자 배열로 변환한다.
- Arrays.sort()를 이용해 내림차순으로 정렬을 한다.
- 내림차순 : (String a, String b) -> { return (b+a).compareTo(a+b);
- 오름차순 : (String a, String b) -> { return (a+b).compareTo(b+a);
- 정렬한 배열의 맨 앞이 0이면 0을 리턴하고, 0이 아니면 리턴하기 위해 배열을 문자로 변환한다.
3. 코드
import java.util.*;
class Solution {
public String solution(int[] numbers) {
String answer = "";
String[] str = new String[numbers.length];
// int배열 -> String배열
for(int i=0; i<numbers.length; i++){
str[i] = String.valueOf(numbers[i]);
}
// 내림차순 정렬
Arrays.sort(str,
(String a, String b) -> { return (b+a).compareTo(a+b);}
);
// 맨 앞이 0이면 바로 0리턴
if (str[0].equals("0")) return "0";
// String배열 -> String
for(String s : str) answer += s;
return answer;
}
}
References
🏋🏻 개인적으로 공부한 내용을 기록하고 있습니다.
잘못된 부분이 있다면 과감하게 지적해주세요!! 🏋
'Coding Test > Programmers' 카테고리의 다른 글
[프로그래머스] H-Index [JAVA(자바)] (0) | 2021.11.25 |
---|---|
[프로그래머스] 베스트앨범 [JAVA(자바)] (0) | 2021.11.25 |
[프로그래머스] 위장 [JAVA(자바)] (0) | 2021.11.25 |
댓글