정수 배열의 길이는 2 이상 10^5 (100,000) 이하입니다.
[1, -5, 2, 4, 3] 을 [-5, 1, 2, 3, 4]로 정렬해서 출력하세요.
[2, 1, 1, 3, 2, 5, 4]를 [1, 1, 2, 2, 3, 4, 5]로 정렬해서 출력하세요.
[6, 1, 7]을 [1, 6, 7]로 정렬해서 출력하세요.
입출력은 arr에 테스트 케이스로 저장되어 있습니다.
데이터 개수는 최대 10^5(100,000) 입니다.
제한시간이 3초이면 O(N^2) 알고리즘은 사용이 불가능합니다.
만약 배열의 최대 길이가 10이면 O(N^2) 알고리즘은 사용이 가능합니다.
자바스크립트의 sort() 메서드는 아무런 조건을 전달하지 않고 실행하면 데이터가 문자열이라 가정하고 정렬합니다.
[1, 10, 5, 3, 100].sort();
[-1, 10, -5, 3].sort();
이렇게 입력하면
[1, 10, 100, 3, 5] 가 출력이 되는데
문자로 보고 1 -> 3 -> 5로 취급해 정렬합니다. 숫자는 123456789로 세니까요.
아래의 배열은 음수부터 출력하고 그 후 1234 순서로 출력이 되는데
[-1, -5, 10, 3] 가 출력이 되는데
이는 문자열 정렬이 되고 원하는 값이 나오지 않습니다.
function solution(n) {
arr.sort( (a, b) => a - b);
return arr;
}

n의 숫자보다 numbers의 숫자를 좌측에서부터 덧셈하여 n보다 크면 멈추게 하기
function solution(numbers, n) {
let answer = 0;
for (let i = 0; i < numbers.length; i++) {
answer = answer + numbers[i];
if (answer > n) {
break;
}
};
return answer;
}
answer를 숫자 0으로 선언합니다.
for문 i = 0으로 인덱스 0부터 시작하는 반복문을 만들어 돌립니다. numbers의 길이만큼 반복합니다.
answer에는 answer + numbers[i]를 반복하게 합니다.
그럼 answer는 answer + numbers[i]를 합산하는데
answer(0) + numbers[i] = 0 + 34
answer(34) + numbers[i] = 34 + 5
answer(39) + numbers[i] = 39 + 71
answer(71) + numbers[i] = 71 + 29
answer는 위와 같이 합산을 합니다.
if (answer가 n보다 크면) break 하도록 하였습니다.