[프로그래머스] 가장 큰 수 풀이 (정렬)

2025. 4. 26. 18:25·Algorithm

문제 소개

오늘 풀었던 프로그래머스 - 가장 큰 수 문제를 정리합니다.

이 문제는 여러 정수를 이어 붙여서 만들 수 있는 가장 큰 수를 찾는 문제입니다.
단순히 숫자 크기 순으로 정렬하는 것이 아니라, 이어 붙였을 때 더 큰 숫자가 되는 순서를 기준으로 정렬해야 합니다.

문제 링크: 가장 큰 수 - 프로그래머스


문제 접근 방식

이 문제는 다음과 같은 방식으로 접근했습니다:

  1. 숫자를 문자열로 변환하여 배열에 저장합니다.
  2. 두 문자열을 이어붙인 결과 (ab, ba)를 비교하여 더 큰 쪽을 우선하도록 정렬합니다.
  3. 정렬이 끝난 문자열들을 차례로 이어붙여 최종 결과를 만듭니다.
  4. 가장 앞자리가 0이면(예: [0, 0, 0]) 결과는 "0"을 반환합니다.

해결 과정 및 코드

핵심 아이디어

  1. "a"+"b"와 "b"+"a"를 비교하여 더 큰 문자열이 앞에 오도록 정렬한다.
  2. 모든 숫자를 문자열로 변환하고, 정렬 후 이어붙인다.

코드

시간 복잡도 : O(N log N)

import java.util.*;

class Solution {
    public String solution(int[] numbers) {
        StringBuilder sb = new StringBuilder();
		// int -> String 변환        
        String[] strNumbers = Arrays.stream(numbers)
                                    .mapToObj(String::valueOf)
                                    .toArray(String[]::new);
        // 붙였을 때 큰 경우를 우선으로 내림차순 정렬
        Arrays.sort(strNumbers, (a, b) -> (b + a).compareTo(a + b));
        
        if (strNumbers[0].equals("0")) return "0";
        for (String str : strNumbers) {
            sb.append(str);
        }
        return sb.toString();
    }
}

'Algorithm' 카테고리의 다른 글

[프로그래머스] 입국 심사 (이분탐색)  (0) 2025.04.27
[프로그래머스] H-Index (정렬)  (0) 2025.04.27
[프로그래머스] K번째 수 풀이 (정렬)  (0) 2025.04.26
[프로그래머스] 완주하지 못한 선수 풀이 (Hash)  (0) 2025.04.26
[프로그래머스] N으로 표현 풀이 (DP)  (0) 2025.04.26
'Algorithm' 카테고리의 다른 글
  • [프로그래머스] 입국 심사 (이분탐색)
  • [프로그래머스] H-Index (정렬)
  • [프로그래머스] K번째 수 풀이 (정렬)
  • [프로그래머스] 완주하지 못한 선수 풀이 (Hash)
Celion
Celion
오늘도 평소처럼 화이팅!
  • Celion
    Orion Log
    Celion
  • 전체
    오늘
    어제
    • 전체 글 (144)
      • Uncompiled Thoughts (8)
        • 네이버 부스트캠프 10기 (5)
      • CS 기초부터 한 걸음씩 (34)
      • Code Odyssey (22)
      • Algorithm (77)
        • Coding Test Records (63)
      • Git (3)
      • reference (0)
  • 블로그 메뉴

    • 태그
    • 방명록
  • 태그

    Level3
    백준
    java
    알고리즘고득점kit
    Level2
    Kotlin
    코테
    프로그래머스
    greedy
    문법정리
    시뮬레이션
    boostcamp
  • 최근 글

  • 인기 글

  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.4
Celion
[프로그래머스] 가장 큰 수 풀이 (정렬)
상단으로

티스토리툴바