코딩 정복 가즈아~
Home
  • 분류 전체보기 (159)
    • 알고리즘 풀이 (149)
      • 프로그래머스 (89)
      • 백준 (59)
    • 취준 일기 (6)
    • 네트워크 정리 (1)
Home
  • 분류 전체보기 (159)
    • 알고리즘 풀이 (149)
      • 프로그래머스 (89)
      • 백준 (59)
    • 취준 일기 (6)
    • 네트워크 정리 (1)
블로그 내 검색

코딩 정복 가즈아~

(っ◔◡◔)っ ♥ 2021 취뽀하자!! ♥

  • 알고리즘 풀이/프로그래머스

    [level2] 프로그래머스 - 가장 큰 수(JAVA)

    2021. 9. 20.

    by. 데롱디롱

    728x90

     

     

    [ 문제 풀이 ]

    - int형 배열을 String형으로 바꿔주어 숫자 자체가 아닌 앞자리의 크기로 비교한다.

     

     

    - 문자열을 내림차순으로 정렬한다.

    그냥 n2.compareTo(n1)만을 하면 다음과 같다.
    [ 9, 5, 34, 30, 3 ]

    여기엔 문제가 존재한다.
    비록 숫자가 작지만 먼저 오는게 더 큰 경우가 생길 수도 있다.
    [ 34, 30, 3 ] 이 경우, [ 34, 3, 30 ]이 되어야 한다는 것이다.
    34303 < 34330이기 때문이다.

    그렇기 때문에 단순 비교가 아니라
    n1에 n2를 더한 것과 n2에 n1를 더한 것을 비교하여 내림차순 정렬해주어야 한다.
    (n2 + n1).compareTo(n1 + n2)

     

    - String 배열을 문자열로 바꿔준다.

    Arrays.stream( String 배열 ).collect(Collectors.joining())

     

    - 만약 내림차순으로 정렬한 배열의 맨 앞 숫자가 0이라면, "0"을 출력한다.

     

     

    [ 전체 코드 ]

    import java.util.Arrays;
    import java.util.stream.Collectors;
    
    class Solution {
        public String solution(int[] numbers) {
            String[] nums = new String[numbers.length];
            for (int i = 0; i < numbers.length; i++)
                nums[i] = numbers[i] + "";
    
            Arrays.sort(nums, (n1, n2) -> (n2 + n1).compareTo(n1 + n2));
    
            return nums[0].equals("0") ? "0" : Arrays.stream(nums).collect(Collectors.joining());
        }
    }

     

     

    [ 케이스 공유 ]

    만약 테스트케이스 11번만 틀리셨다면, 0인 경우를 처리하지 않으셨을 수도 있습니다.

     

     

    저작자표시 (새창열림)

    '알고리즘 풀이 > 프로그래머스' 카테고리의 다른 글

    [level1] 프로그래머스 - 최소직사각형(JAVA)  (0) 2021.10.10
    [level2] 프로그래머스 - 게임 맵 최단거리(JAVA)  (0) 2021.09.29
    [level2] 프로그래머스 - 빛의 경로 사이클(JAVA)  (2) 2021.09.20
    [level2] 프로그래머스 - 행렬 테두리 회전하기(JAVA)  (0) 2021.09.19
    [level2] 프로그래머스 - 짝지어 제거하기(JAVA)  (0) 2021.09.18

    댓글

    관련글

    • [level1] 프로그래머스 - 최소직사각형(JAVA) 2021.10.10
    • [level2] 프로그래머스 - 게임 맵 최단거리(JAVA) 2021.09.29
    • [level2] 프로그래머스 - 빛의 경로 사이클(JAVA) 2021.09.20
    • [level2] 프로그래머스 - 행렬 테두리 회전하기(JAVA) 2021.09.19
    맨 위로
전체 글 보기
Tistory 로그인
Tistory 로그아웃
로그아웃 글쓰기 관리

Today

Total

피할 수 없다면, 순간을 즐겨라

Designed by Nana
블로그 이미지
데롱디롱
희희.. (๑′ᴗ‵๑)

티스토리툴바