inblog logo
|
LHS's Study Space
    알고리즘문제풀기프로그래머스

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

    lhs's avatar
    lhs
    Dec 20, 2024
    [프로그래머스] 가장 큰 수(42746)
    Contents
    1. 문제 풀이 아이디어2. 나의 정답 코드3. 정리
    school.programmers.co.kr
    https://school.programmers.co.kr/learn/courses/30/lessons/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
    Contents
    1. 문제 풀이 아이디어2. 나의 정답 코드3. 정리

    LHS's Study Space

    RSS·Powered by Inblog