프로그래밍

아래 숫자정렬 풀이

일단 코드 써놓은건 존나 길어서 안봤음

 

이 문제의 핵심은 두 수의 우선순위를 어떻게 비교하냐,인데

 

길이가 같으면 단순히 숫자가 크면 우선순위가 크지만 길이가 다르면 비교하기가 힘듬

 

그럼 어떻게 해야되냐, 걍 길이를 같게 만들어주면 됨

 

정확히는 두 수를 서로 뒤에 붙여서 크기를 비교해주면됨

 

예를들어 12와 121을 비교하고싶으면

 

12 + 121 인 12121과 121+12인 12112를 비교하면 12를 앞에둔쪽이 더 숫자가 크니까

 

12를 우선하도록 하면 끝

 

아래는 내가 짠 소스

 

 

import java.util.Arrays;

class Solution {
    public String solution(int[] numbers) {
        String[] arr = new String[numbers.length];
        for(int i=0;i<numbers.length;++i)
        {
            arr[i] = String.valueOf(numbers[i]);
        }
         Arrays.sort(arr, (o1,o2)->
        {
            if(o1.length()==o2.length()) return o2.compareTo(o1);
            return Integer.compare(Integer.parseInt(o2+o1),Integer.parseInt(o1+o2));
        });
        StringBuilder sb = new StringBuilder();
        for(String str : arr)
        {
            sb.append(str);
        }
        for(int i=0;i<sb.length()-1;i++)
        {
            if(sb.charAt(i)!='0') break;
            sb.deleteCharAt(i);
            i--;
        }
        return sb.toString();
    }
}

 

9개의 댓글

2019.04.23

내가 씨플플이라 자바는 잘모르겠는데 형말대로 두수 합쳐서 큰수되는걸 앞으로 하면되겟네 개꿀힌트 고마워 형

음 그럼 검사를 어케해줘야될까...

 

1. 포문두번돌려서 배열안에있는 모든원소와 비교해서 스왑

2. 자신과 자신바로뒷번호끼리만 비교해서 스왑후 배열 -1 (-1이 확실한건지는 잘모르겟음)

 

 

0
2019.04.23
@썰쟁이

1,2를 동시에 하는게 버블정렬인데

스왑조건에 저거 넣으면되지

 

어떤정렬 알고리즘을 쓰건 스왑조건만 저걸로하면됨

0
2019.04.23
@년째 수집중

버블정렬은 오름차순아니면 내림차순아니야?

return a + b > b + a;하는 함수하나만들어서 sort에 추가하려햇는데...

0
2019.04.23
@썰쟁이

왜 있는 함수 안쓰려고해?

 

c++도 sort있잖아

 

compare(string a, string b) 함수 만들어놓고

 

sort(arr,compare) 이렇게 쓰면 될걸?

0
2019.04.23
@아리성애자

내가말한 return a + b > b + a;이 compare함수말하는거였어

 

암튼 이거 만들어놓고

sort(arr.begin(),arr.end(),compare)하면

이중포문같은거안쓰고 바로 정렬이되는거야??

0
2019.04.23
@썰쟁이

begin end 필요없고 sort(arr, compare)

 

나도 c++안써서 오버로드 어케되어있는진모르겠는데 그냥 arr,compare가 맞을걸

 

근데 이런거 푸는거 그냥 재미로하는거야? 아님 기업 코테 뚫을라고 하는거야?

0
2019.04.23
@아리성애자

코테뚫으려공 ㅎㅎ

원래 c++하다가 유니티배우면서 유니티 포폴만들다가 다 엎어져서 면접넣고있는뎅

c++ 오래안봐서 코딩홈페이지에서 문제풀고있어

 

0
2019.04.23
@썰쟁이

으 빡공해서 코테붙으렴

0
2019.04.23
@아리성애자

ㅠㅠ고마워 잘못하지만 꼭 노력해서 붙어볼께

그리고 미안하지만 종종물어보러올께 ㅠㅠ

0
무분별한 사용은 차단될 수 있습니다.
번호 제목 글쓴이 추천 수 날짜 조회 수
180373 [모바일] 배터리 효율 떨어지면 휴대폰도 느려지나? 4 상한가 0 1 시간 전 52
180372 [잡담] 개꿀 당근에서 만원짜리 컴 득템 7 플게이어 2 9 시간 전 372
180371 [컴퓨터] 중고로 키크론 k3 pro? 라는 키보드를 구해왔는데 9 3th3 0 9 시간 전 192
180370 [견적] 이거 에센코어 KLEVV DDR4 PC4-25600 CL22 매우 싸게 나왔는... 11 부터시작하는이세... 0 14 시간 전 177
180369 [잡담] 모니터암 설치하는데 미스테리 3 사나이테스트 0 15 시간 전 291
180368 [컴퓨터] 음향 관련 잘아는 형들 질문... 3 Marlin 0 15 시간 전 130
180367 [잡담] 애드가드 안드로이드 kt-dpi 우회 업데이트 됨 어무니 0 16 시간 전 155
180366 [컴퓨터] m2 ssd를 메인보드 기준으로 슬롯 1번에 있는거 2번으로 옮기... 3 오뜨 0 16 시간 전 113
180365 [잡담] 유튜브앱 구간 스킵 방식이 바꼈네?? 3 츄이로 0 17 시간 전 173
180364 [컴퓨터] 이륙 허가좀 17 사촌간부랄빨기 0 18 시간 전 158
180363 [컴퓨터] 완전 컴알못인데 이 레노버 노트북 사도 될까? 10 Fiesta 0 18 시간 전 162
180362 [잡담] 천천히 충전하는 거 폰 배터리에 더 안 좋음? 6 개돼지무한리필 0 18 시간 전 147
180361 [잡담] 메타ai 공개 2 년차html개발자 1 19 시간 전 148
180360 [컴퓨터] p41을 서브 게임저장용은 낭비인가? 8 신우철 0 20 시간 전 160
180359 [정보] 해당 모니터암이 여기 모니터2개에 맞을지 모르겠습니다 2 골든베릴 0 23 시간 전 124
180358 [견적] (직구) SK하이닉스 Platinum P41 2TB PCIe4.0 NVMe M.2 2280 ... 7 요기쪄 0 23 시간 전 325
180357 [컴퓨터] 이거 괜찮은 가격인가요? 5 죽업 0 1 일 전 192
180356 [잡담] 급해서 특급운송으로 주문했는데... 오브 0 1 일 전 158
180355 [컴퓨터] 사도 됨? 8 or5469 0 1 일 전 187
180354 [모바일] 에어팟 프로 1세대 노이즈 캔슬링시 들리는 잡음 해결 방법 5 기승전치킨 0 1 일 전 167