프로그래밍

아래 숫자정렬 풀이

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

 

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

 

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

 

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

 

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

 

예를들어 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
무분별한 사용은 차단될 수 있습니다.
번호 제목 글쓴이 추천 수 날짜 조회 수
180589 [견적] 개붕이 견적 도와죠요 2 가기그게그거 0 56 분 전 27
180588 [모바일] 이거 삼전케어플러스로 넘어가야할정도임? 1 마법부오러사무국장 0 3 시간 전 105
180587 [컴퓨터] 모니터 이상함 띵똥이 0 3 시간 전 39
180586 [모바일] A25가 그렇게 별로임?? 5 울그락푸르락 0 4 시간 전 82
180585 [컴퓨터] 독거미 도착함 11 쿠쿠N취킨 0 5 시간 전 199
180584 [잡담] 님들도 데스크테리어 해보쉴? 15 냐하하하하 0 6 시간 전 219
180583 [잡담] 논 rgb 구성으로 맞췄더니 뭔가 심심해서 3 전기모기채는신이야 0 7 시간 전 74
180582 [컴퓨터] 이거 사운드카드 죽은거냐? 3 와신상담 0 9 시간 전 117
180581 [컴퓨터] m.2케이스에 넣어서 sd카드 대신에 사용해도 괜찮아?? 6 코싸멘뚜 0 9 시간 전 154
180580 [잡담] 플스5 아무거나 사면됨?? 6 년째재수강 0 9 시간 전 134
180579 [모바일] 24 울트라 5G 512기가는 재고가 아예없네 3 마법부오러사무국장 0 10 시간 전 191
180578 [컴퓨터] 아니 바탕화면 창에 ㅈ 같은 이거 도대체 뭐라고 해요? 9 사슴만지게해줘 0 11 시간 전 234
180577 [모바일] 갤럭시 처음 써보는데 문자알림 내용표시 어떻게 해??? 17 bulusuky 1 11 시간 전 106
180576 [프로그래밍] 엥 구글 플러터 유기각 재는거임?? 4 최수연 0 12 시간 전 164
180575 [모바일] 모바일 크롬 탭창 표정 바뀜 ㅎㄷㄷ 1 살에눈나와어른의... 1 13 시간 전 166
180574 [모바일] 폰 충전기 발열이 넘 심한데 바꿔야 하나 2 우히히힣 0 15 시간 전 135
180573 [컴퓨터] i9 13900k 쓰고있는데 질문! 3 래더넉 0 18 시간 전 169
180572 [컴퓨터] 키보드 -> 방향키가 눌릴때 삐걱거림 4 뮤잉운동케겔운동... 0 20 시간 전 77
180571 [모바일] 기기변경할때 유심을 같은거쓰면 정보 그대로 보존됨? 2 마법부오러사무국장 0 21 시간 전 98
180570 [잡담] 결국 레이니 75 구매함 5 이제는끝내자 0 22 시간 전 248