5. 가장 큰 수 (프로그래머스)
by BFine반응형
가. 문제파악
1. 유형 : 정렬
- 이문제는 처음에 접근을 뒷자리가 큰순으로 정렬 했다가 망해버렸다 ...
- 어떻게 접근해야하는지 감이 안와서 답안을 참고하여 풀었다.
나. 코드
1. 풀이 : 두개를 더해서 비교 후 정렬!
- 생각보다 단순하다. 두문자를 더해서 미리 비교해서 정렬 하는 것 이다!
=> {10,2,1} 이면 10, 2 -> 210 > 102 / 2 ,1 -> 21 > 12 / 1,10 -> 110 > 102 정렬 {2,1,10}
- 정렬된배열을 한줄로 만들면 된다. 그리고 0일경우 000 이렇게 될수있으니 예외 처리 필수!
import java.util.Arrays;
import java.util.stream.Collectors;
public class Solution {
public String solution(int[] numbers) {
String collect = Arrays.stream(numbers)
.boxed()
.map(String::valueOf)
.sorted(((o1, o2)
->Integer.compare(Integer.parseInt(o2+o1),Integer.parseInt(o1+o2)) ))
.collect(Collectors.joining());
return collect.charAt(0) == '0'?"0":collect;
}
}
반응형
'알고리즘 > 문제풀이' 카테고리의 다른 글
7. n진수게임 (프로그래머스) (0) | 2021.04.10 |
---|---|
6. 삼각달팽이 (프로그래머스) (0) | 2021.04.10 |
4. 소수찾기 (프로그래머스) (0) | 2021.04.04 |
3. 124 나라의 숫자 (프로그래머스) (0) | 2021.04.03 |
2. 신규아이디 추천 (프로그래머스) (0) | 2021.04.02 |
블로그의 정보
57개월 BackEnd
BFine