1. 문제
2. 풀이 방법 생각
- 이중 for 문 사용해 새로운 배열에 두 개를 더한 값을 무작정 넣음
- 새로운 배열(result)을 정렬 후 중복값 제거한 새로운 배열(real) 만듦
- 배열(real)을 정렬해서 return
3. 코드 구현
function solution(numbers) {
let result = [];
for(let i = 0; i < numbers.length; i++) {
for(let j = 0; j < numbers.length; j++) {
if(i === j) continue;
result.push(numbers[i] + numbers[j]);
}
}
result = result.sort();
let real = [];
for(let i = 0; i < result.length; i++) {
if(result[i] === result[i-1]) {
continue;
} else if(result[i] !== result[i-1]) {
real.push(result[i])
}
}
return real.sort(function(a,b) {return a-b});
}
4. 알게 된 점
- Java Script 내장 객체 중 Set이라는 객체는 유일한 값만을 갖기 때문에 배열 -> Set으로 만드는 방법을 사용했으면 좋을 듯
- Java Script는 default로 배열을 문자열로 인식해서 sort했을 때 잘 안 될 수 있음 -> function(a,b) {return a-b)}(오름차순)을 쓰면 해결 가능 => 내림차순은 b-a
- 코드를 수정하면서 깔끔해지는 게 느껴져서 조았슴
댓글