[Lv.1]同じ数字が好きではありません.別々の数字の配列、2つの整数の間の和
9699 ワード
<同じ数字は要らない>
質問:https://programmers.co.kr/learn/courses/30/lessons/12906
🔶私のやり方
function solution(arr) {
return arr.reduce((acc, cur) => {
if (acc[acc.length - 1] !== cur) {
acc.push(cur);
}
return acc;
}, []);
}
// 실행코드
// console.log(solution([1, 1, 3, 3, 0, 1, 1])); // [1,3,0,1]
// console.log(solution([4, 4, 4, 3, 3, 4, 4])); // [4,3,4]
🔶その他の方法を使用-フィルタ
function solution(arr) {
return arr.filter((el, idx) => el !== arr[idx + 1]);
}
🔶フィードバック
パラメータが配列の場合、
同じ長さの配列を返すときはmap、異なる長さの配列を返すときはfilterを使用することをお勧めします
<区切り数字>
質問:https://programmers.co.kr/learn/courses/30/lessons/12910
🔶私のやり方
function solution(arr, divisor) {
const divArr = arr.filter((el) => el % divisor === 0).sort((a, b) => a - b);
return divArr.length ? divArr : [-1];
}
//실행코드
//console.log(solution([5, 9, 7, 10], 5)); // [5, 10]
//console.log(solution([2, 36, 1, 3], 1)); // [1, 2, 3, 36]
//console.log(solution([3, 2, 6], 10)); // [-1]
<2つの整数の和>
質問:https://programmers.co.kr/learn/courses/30/lessons/12912
🔶私のやり方
function solution(a, b) {
const first = Math.min(a, b);
const second = Math.max(a, b);
let result = 0;
for (let i = first; i <= second; i += 1) {
result += i;
}
return result;
}
// 실행코드
//console.log(solution(3, 5)); // 12
//console.log(solution(3, 3)); // 3
//console.log(solution(5, 3)); // 12
🔶別のメソッド-while文の使用
function solution(a, b) {
let result = a < b ? a : b; // 3
while (a !== b) {
result += a < b ? (a += 1) : (b += 1); // 3+ 4+ 5
}
return result;
}
Reference
この問題について([Lv.1]同じ数字が好きではありません.別々の数字の配列、2つの整数の間の和), 我々は、より多くの情報をここで見つけました https://velog.io/@jhplus13/Lv.1같은-숫자는-싫어-나누어-떨어지는-숫자-배열-두-정수-사이의-합テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol