문제 설명
0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요.
예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰 수는 6210입니다.
0 또는 양의 정수가 담긴 배열 numbers가 매개변수로 주어질 때, 순서를 재배치하여 만들 수 있는 가장 큰 수를 문자열로 바꾸어 return 하도록 solution 함수를 작성해주세요.
제한 사항
- numbers의 길이는 1 이상 100,000 이하입니다.
- numbers의 원소는 0 이상 1,000 이하입니다.
- 정답이 너무 클 수 있으니 문자열로 바꾸어 return 합니다.
입출력 예
numbers | return |
---|---|
[6, 10, 2] | 6210 |
[3, 30, 34, 5, 9] | 9534330 |
대기업 다닌애들한테 문제 풀어보라고 부탁을 해봤습니다.
결론부터 말씀드리자면 대기업 다니는 애들도 왜 1~6 테케 실패하는지 모르겠다고 하네요. 제 최고 점수는 7~11 맞은게 최고 점수이고 아래 코드는 최신 버전이고 테케 11 과 10 실패하는 버전입니다. 일단은 Google, Microsoft 다닌애들한테도 풀어보라고 부탁하였고 개들도 못푸는 문제이면 프로그래머스가 정말 어려운 문제를 만들었거나 아니면 문제 자체에 문제가 있거나.
대기업 다니는애들이 이문제에 대에 지적한 부분은
- 일단 가장 문제있는 문제에 대에서 지적하자면 테케 11 경우
0000
경우0
을 리턴을 해야합니다. - 문제에 테케가 부족합니다.
- 모든 경우의 수를 프로그래머가 생각을 해야합니다.
- 마지막은 다 동의 하실거라 생각하네요. 자기가 무슨 테케를 틀렸는지 안말해준다는점
비록 영문이지만 적어도 테케 어디서 틀렸는지 말해주고 무슨 테케에서 fail 이 떴는지 나오는 사이트입니다. 또 미국 대기업들이 콘테스트 같은걸 할때 가장 많이 사용하는 사이트입니다. https://leetcode.com/explore/ 0% 숫자가 있는게 무료버전입니다 나머지는 유로이고요. 돈내고 굳이 푸실 필요까지는 없을거에요.
작성하고있던 코드는 더이상 시도는 무의미한거 같에서 포기하고. 다른분들이 필요할만한 Comparator 만 가져다 쓰세요. Comparator String 속성상 o1 이 항상 큰 숫자입니다 따라서 항상 o1 이 더 큰수를 지니고 있을거에요.
댓글 없음:
댓글 쓰기