Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- to display the conditions report re-run your application with 'debug' enabled
- 설정
- 이산수학
- 14466
- 백준
- 자바
- CMD
- 소가길을건너간이유6
- SpringBoot
- 투에모스문자열
- 2108_통계학
- jenkins
- 호석이두마리치킨
- Error
- EC2
- dockercompose
- 날짜일수
- documentationpluginsbootstrapper
- docker
- 20055
- Eclipse
- 프로그래머스
- Error fetching remote repo 'origin'
- 별자리 만들기
- 21278
- 2167. 2차원 배열의 합
- 이클립스
- Java
- 18222
- 알고리즘
Archives
- Today
- Total
계단을 오르듯이
[JAVA] 가장 큰 수 본문
처음에는 먼저 비교 후 길이가 다를시 어떻게 비교를...하지...하다가 고민끝에 정답을 찾아보았다.
오..역시..천재들이 많다....!
비교하는 값 A와 B를 앞뒤로 더해서 내림차순을 구한다!!!
주의!! 문제에서는 0 또는 양의 정수라고 나와있다.
따라서 모든 수가 0만이 존재할 때 000... 이 될 수 있음을 유의하여 0만을 출력하도록 하는 조건문을 추가해야한다.
언제나 문제는 잘 읽고 문제 속에서 모든 경우의 수를... 생각해야하는 알고리즴~!
import java.util.*;
class Solution {
public String solution(int[] numbers) {
String answer = "";
String[] str = new String[numbers.length];
for(int i=0;i<numbers.length;i++){
str[i] = numbers[i]+"";
}
Arrays.sort(str, new Comparator<String>(){
@Override
public int compare(String o1, String o2){
return (o2+o1).compareTo(o1+o2); // 내림차순
}
});
// 주어진 정수의 모든 값이 0만 주어진 경우 => 00000.... = 0 이므로
if(str[0].equals("0")) answer = "0";
else{
for(int i=0;i<str.length;i++){
answer += str[i];
}
}
return answer;
}
}
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[JAVA] 네트워크 (0) | 2022.01.08 |
---|---|
[JAVA] 타겟 넘버 (0) | 2022.01.08 |
[JAVA] 소수 찾기(완전탐색) (0) | 2022.01.07 |
[JAVA] 기능 개발 (0) | 2022.01.07 |
[JAVA] 위장 (0) | 2022.01.07 |