티스토리 뷰

728x90

문제링크

 

 

문제 풀이 과정

스트림과 람다식으로 간단하게 코드를 작성 할 수 있었다.

코드 실행 시에 11번 케이스만 오류가 나고 나머지는 모두 통과가 되었다. 반례를 생각해보니 0,0,0,0,0 일때는 0이 return 이 되어야 한다는 점이다.

문자열이기때문에 0,0,0,0,0 일때 00000이 나온다. 이것을 해결하기 위해서 코드 초반 부분에 배열의 전체 합을 구한 다음 합이 0일 때는 return 0으로 하는 것으로 해결이 되었다.

 

int sum = Arrays.stream(numbers).sum();
if(sum == 0){
    return "0";
}

 

 

전체 코드

import java.util.Arrays;
class Solution {
public String solution(int[] numbers) {
int sum = Arrays.stream(numbers).sum();
if(sum == 0){
return "0";
}
StringBuilder sb = new StringBuilder();
if(numbers.length == 1){
sb.append(numbers[0]);
return sb.toString();
}
Arrays.stream(numbers)
.boxed()
.sorted((x, y) -> {
int a = Integer.parseInt(String.valueOf(x) + String.valueOf(y));
int b = Integer.parseInt(String.valueOf(y) + String.valueOf(x));
return b - a;
})
.forEach(sb::append);
return sb.toString();
}
}
view raw biggestNum.java hosted with ❤ by GitHub

 

 

 

728x90