
0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요.
예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰 수는 6210입니다.
0 또는 양의 정수가 담긴 배열 numbers가 매개변수로 주어질 때, 순서를 재배치하여 만들 수 있는 가장 큰 수를 문자열로 바꾸어 return 하도록 solution 함수를 작성해주세요.
numbers의 길이는 1 이상 100,000 이하입니다.
numbers의 원소는 0 이상 1,000 이하입니다.
정답이 너무 클 수 있으니 문자열로 바꾸어 return 합니다.
function solution(numbers) {
const answer = numbers
.map((number) => number.toString())
.sort((a, b) => b + a - (a + b))
.join("");
return answer[0] === "0" ? "0" : answer;
}
/* n의 값이 늘어나도 실행 되는 시간에는 아무런 영향을 받지 않는다. 시간복잡도 O(1) */ function addSec(n) { return n * (n + 1 ) / 2; }
/* 실행되는 시간이 n의 값이 늘어나는것과 비례하게 1:1비율로, 선형으로 늘어난다. 시간복잡도 O(n) */ function addFirst(n) { var total = 0; for (let i=0; i<=n; i++) { total +=i; } return total }
/* 중첩 루프(for문)을 가진다. O(n) 연산 안에 O(n)을 가지고 있으면 O(n^2)이 된다. 시간복잡도 O(n^2) */ function bigO(n) { for (let i=0; i < n; i++) { for (let j=0; j < n; j++) { console.log(i, j); } } }
/* 입력의 크기에 따라 처리 시간이 증가하는 정렬 알고리즘에 사용 된다. 시간 복잡도 O(log n) */ function bigO(n) { for (let i = 2; i <= n; i*2) { console.log(i); } }
// 입려시 이미 배열의 길이가 정해져있어 변하는것이 아니기 때문에 공간 복잡도 O(1)를 갖는다. function sum(arr) { let total = 0; for (let i=0; i < arr.length; i++) { total += arr[i]; } }
// arr길이 만큼 newArr의 공간이 생기기 때문에 공간 복잡도 O(n)을 갖는다. function double(arr) { let newArr = []; for (let i=0; i < arr.length; i++) { newArr.push([i]); } }
이전에 짯던 기본 구조에서 패킷 사이즈와 패킷 아이디를 받아 전체 패킷 크기를 구하는 부분에 문제가 있는 것 같아 구조를 뜯어고쳣다.
proto파일을 받아오는 loadProto와 비슷한 구조로 assets폴더 안에 있는 json파일을 읽을 수 있는 loadAssets.js를 만들었는데 loadAsset의 gameAssets를 받아서 사용하는 함수 getJobById가 제대로 작동하지 않는다.
어떤 부분이 잘못된것인지 잘 모르겠어서 내일 조금 더 건드려본 다음에 튜터님께 질문해봐야겠다.
아마 이부분만 잘 처리되면 게임 실행에서는 문제가 없을 것 같다.