[코딩테스트] 가장 큰 수

시나브로·2021년 6월 21일
0

코딩테스트

목록 보기
12/34
post-thumbnail

문제


가장 큰 수 문제 바로가기



제출 코드(JAVA)


코드 제출

public String solution(int[] numbers) {
        StringBuffer result = new StringBuffer();
        String[] strings = Arrays.toString(numbers).split("[\\[\\]]")[1].split(", ");
        Arrays.sort(strings, new Comparator<String>() {
            @Override
            public int compare(String o1, String o2) {
                return (o2 + o1).compareTo(o1 + o2);
            }
        });

        for (String s : strings) {
            result.append(s);
        }

        return result.charAt(0) == '0' ? "0" : result.toString();
    }

나중에 합산되는 수라면 비교할 때, 서로 합산하여 정렬 후 풀어낸 문제


정확성 테스트

정확성  테스트
테스트 1 〉	통과 (316.93ms, 81.2MB)
테스트 2 〉	통과 (181.58ms, 74.6MB)
테스트 3 〉	통과 (351.93ms, 83.5MB)
테스트 4 〉	통과 (34.84ms, 54.8MB)
테스트 5 〉	통과 (284.31ms, 80.8MB)
테스트 6 〉	통과 (242.54ms, 79.5MB)
테스트 7 〉	통과 (2.58ms, 53.1MB)
테스트 8 〉	통과 (2.21ms, 52.1MB)
테스트 9 〉	통과 (2.49ms, 52.8MB)
테스트 10 〉	통과 (2.47ms, 53.3MB)
테스트 11 〉	통과 (2.70ms, 52.2MB)




정렬쪽이 많이 부족하여 애먹는 중이다,,,,,



제출 코드(Python)


코드 제출

def comparator(a,b):
    t1 = a+b
    t2 = b+a
    return (int(t1) > int(t2)) - (int(t1) < int(t2)) #  t1이 크다면 1  // t2가 크다면 -1  //  같으면 0

def solution(numbers):
    n = [str(x) for x in numbers]
    n = sorted(n, key=cmp_to_key(comparator),reverse=True)
    answer = str(int(''.join(n)))
    return answer

정확성 테스트

정확성  테스트
테스트 1 〉	통과 (1444.91ms, 21.7MB)
테스트 2 〉	통과 (545.65ms, 16.3MB)
테스트 3 〉	통과 (2055.61ms, 25.2MB)
테스트 4 〉	통과 (14.97ms, 10.5MB)
테스트 5 〉	통과 (1125.91ms, 20.4MB)
테스트 6 〉	통과 (912.68ms, 19.1MB)
테스트 7 〉	통과 (0.10ms, 10.4MB)
테스트 8 〉	통과 (0.07ms, 10.4MB)
테스트 9 〉	통과 (0.07ms, 10.4MB)
테스트 10 〉	통과 (0.06ms, 10.4MB)
테스트 11 〉	통과 (0.08ms, 10.3MB)




profile
Be More!

0개의 댓글