[프로그래머스] 가장 큰 수(42746)

lhs's avatar
Dec 20, 2024
[프로그래머스] 가장 큰 수(42746)
 

1. 문제 풀이 아이디어

  • 주어진 숫자 배열을 문자열 배열로 변환하여 정렬하면 문제를 해결할 수 있다.

2. 나의 정답 코드

class Solution { public String solution(int[] numbers) { String answer = Arrays.stream(numbers).mapToObj(String::valueOf).sorted((o1, o2) -> (o2 + o1).compareTo(o1 + o2)).collect(Collectors.joining()); return answer.startsWith("0") ? "0" : answer; } }

3. 정리

  • Arrays.stream(numbers).mapToObj(String::valueOf) 숫자 배열를 문자열 스트림 변환한다.
  • 두 문자열을 이어붙였을 때 더 큰 값이 앞에 오도록 내림차순 정렬한다.
  • Collectors.joining()으로 정렬된 문자열을 하나로 합친다.
  • 결과가 "0"으로 시작하면 "0" 반환, 아니면 결과를 반환한다.
Share article

LHS's Study Space