: Level.1
: 스킬 체크 테스트 Level.1
: 정수 배열 numbers가 주어집니다. numbers에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를 배열에 오름차순으로 담아 return 하도록 solution 함수를 완성해주세요.
numbers | result |
---|---|
[2,1,3,4,1] | [2,3,4,5,6,7] |
[5,0,2,7] | [2,5,7,9,12] |
입출력 예 #1
입출력 예 #2
solution.js
function solution(numbers) {
let result = [];
numbers.sort();
for(i=0; i < numbers.length; i++) {
for(j=i+1; j < numbers.length; j++) {
let plus = numbers[i] + numbers[j];
if (!result.includes(plus)) {
result.push(plus);
}
}
}
result.sort((a,b) => a-b);
return result;
}
처음에는 입출력 예시에 해당하는 테스트 케이스만 통과하고 나머지는 통과하지 못하길래 원인이 무엇일까 생각하다가,
result
배열은 정렬해주지 않았다는 것을 깨닫고result.sort(a,b) => a-b)
를 통해 배열을 오름차순으로 정리하였더니 나머지 테스트 케이스들도 무사히 통과하였다.다만, 아쉬운 부분은 시간복잡도 효율성이 최악이라는 부분.
시간복잡도에 대한 개념과 효율적인 코딩에 대해 좀 더 공부해야 할 것 같다.
solution.js
function solution(number) {
var answer = 0;
return answer;
}