ふたつ引いてから足す
5936 ワード
https://programmers.co.kr/learn/courses/30/lessons/68644
答えに[i]+[j]と同じ値がない場合は、それを入れます.
let numbers = [2, 1, 3, 4, 1]
function solution(numbers) {
let answer = [];
//
for (let i =0; i < numbers.length; i++){
for (let j = i+1; j < numbers.length; j++){
// 서로 다른 인덱스
if(!answer.includes(numbers[i]+numbers[j])) {
answer.push(numbers[i]+numbers[j]);
} console.log(numbers[i]+numbers[j])
} console.log(answer)
}
answer.sort((a,b)=>a-b)
return answer;
}
console.log(solution(numbers)) //[ 2, 3, 4, 5, 6, 7 ]
[0]+[1]、[0]+[2]の順に要素を追加し、結果が重複しないようにします.答えに[i]+[j]と同じ値がない場合は、それを入れます.
console.log(numbers[i]+numbers[j])
3 [0]+[1]
5 [0]+[2]
6 [0]+[3]
3 [0]+[4]
4 [1]+[2]
5 [1]+[3]
2 [1]+[4]
7 [2]+[3]
4 [2]+[4]
5 [3]+[4]
console.log(answer)
[ 3, 5, 6 ]
[ 3, 5, 6, 4, 2 ]
[ 3, 5, 6, 4, 2, 7 ]
[ 3, 5, 6, 4, 2, 7 ]
.sort((a,b)=>a-b) 오름차순 공식으로 외우는 게 좋을 것 같다.
.sort((a,b)=>b-a) 내림차순
[ 3, 5, 6, 4, 2, 7 ]
여기에서 a가 뭐고 b가 뭔지 고민을 했는데
3-5 = -2
3 5
3-6 = -3
3 6
3-4 = -1
3 4
3-2 = 1
2 3
3-7 = -4
3 7
5-6 = -1
5 6
5-4 = 1
4 5
5-2 = 3
2 5
///
[2, 3, 4, 5, ///]
이런 식으로 배열 안 요소의 크기를 비교해서 정렬 해주는 것 같다.
이 함수가 리턴하는 값이 0보다 작을 경우, a가 b보다 앞에 오도록 정렬하고,
이 함수가 리턴하는 값이 0보다 클 경우, b가 a보다 앞에 오도록 정렬합니다.
만약 0을 리턴하면, a와 b의 순서를 변경하지 않습니다.
출처: https://hianna.tistory.com/409 [어제 오늘 내일]
Reference
この問題について(ふたつ引いてから足す), 我々は、より多くの情報をここで見つけました https://velog.io/@jinju_woo/두-개-뽑아서-더하기テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol