첫 번째 나의 풀이
function solution(numbers) {
let result = []
const len = numbers.length
for(k=0 ; k < len-1; k++){
for(e=0 ; e < len-k-1; e++){
let value = numbers[k] + numbers[e+k+1]
result.push(value)
}
}
//두 수를 최소한으로 더하기(1번위치와 2번,3번,4번,5번위치를 각각 더하고, 다시 2번위치와 3번,4번,5번 더하고, 다시 3번과 4번,5번 더하고, 다시 4번과 5번 더하는 식)
//결과값 보내기
result.sort((a,b) => a-b)
//오름차순으로 배열
return Array.from(new Set(result));
//중복된 값을 제거하고 배열로 만들기
}
다른 사람 풀이
function solution(numbers) {
const temp = []
for (let i = 0; i < numbers.length; i++) {
for (let j = i + 1; j < numbers.length; j++) {
temp.push(numbers[i] + numbers[j])
}
}
const answer = [...new Set(temp)]
return answer.sort((a, b) => a - b)
}
-나의 풀이와 비슷하지만 더 깔끔한 표현들이 있어서 참고 할 수 있겠다.
다시 풀기
function solution(numbers) {
let result = []
const len = numbers.length
for(k=0 ; k < len-1; k++){
for(e=0 ; e < len-k-1; e++){
let value = numbers[k] + numbers[e+k+1]
result.push(value)
}
}
//두 수를 최소한으로 더하기(1번위치와 2번,3번,4번,5번위치를 각각 더하고, 다시 2번위치와 3번,4번,5번 더하고, 다시 3번과 4번,5번 더하고, 다시 4번과 5번 더하는 식)
//결과값 보내기
//오름차순으로 배열
return [...new Set(result)].sort((a,b) => a-b);
//중복된 값을 제거하고 배열로 만들기
}
TIL.
1. 중복된 값을 제거할 때는 new Set 함수를 사용한다.
2. Array.from함수와 new Set함수
Array.from 함수는 유사배열객체(array-like object)나 반복가능객체(iterable object)를 얕은 복사(shallow copy)하여
새로운 배열(Array) 객체로 만들어준다.
유사배열객체(array-like object) : length 속성과 index element를 가지는 객체
반복가능객체(iterable object) : 배열을 일반화한 객체 ex)Map, Set
const set = new Set([1, 2, 3]);
const arr = Array.from(set);
출처: https://hianna.tistory.com/421 [어제 오늘 내일]
*Array.from의 다른 표현 방식으로 [...new Set()]이 있다.
'IT,Programming > 프로그래머스_코딩테스트_javascript' 카테고리의 다른 글
프로그래머스 코딩테스트 JavaScript 풀이 _직사각형 별찍기 (0) | 2022.02.21 |
---|---|
프로그래머스 코딩테스트 JavaScript 풀이 _문자열 내림차순으로 배치하기 (0) | 2022.02.21 |
프로그래머스 코딩테스트 JavaScript 풀이 _키패드 누르기 (0) | 2022.02.18 |
프로그래머스 코딩테스트 JavaScript 풀이 _체육복(최신버전) (0) | 2022.02.18 |
프로그래머스 코딩테스트 JavaScript 풀이 _k번째 수 (0) | 2022.02.18 |