[Lv.1]같은 숫자는 싫어, 나누어 떨어지는 숫자 배열, 두 정수 사이의 합
<같은 숫자는 싫어>
문제 : https://programmers.co.kr/learn/courses/30/lessons/12906
🔶내가 한 방법
- reduce로 배열을 돌면서, 이전 요소와 현재요소가 같지 않을때만 새로운 배열에 누산함.
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]
🔶다른 사람 방법 - filter 사용
function solution(arr) {
return arr.filter((el, idx) => el !== arr[idx + 1]);
}
🔶피드백
인자가 배열일때 ,
같은 길이의 배열을 반환할 땐 map, 다른 길이의 배열을 반환할 땐 filter 사용 추천
<나누어 떨어지는 숫자 배열>
문제 : https://programmers.co.kr/learn/courses/30/lessons/12910
🔶내가 한 방법
- 배열이 길이가 다른 새 배열을 반환하므로 filter 사용
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]
<두 정수 사이의 합>
문제 : https://programmers.co.kr/learn/courses/30/lessons/12912
🔶내가 한 방법
- 반복해야 하는 횟수가 정해져 있으므로 for문 사용함.
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;
}
Author And Source
이 문제에 관하여([Lv.1]같은 숫자는 싫어, 나누어 떨어지는 숫자 배열, 두 정수 사이의 합), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@jhplus13/Lv.1같은-숫자는-싫어-나누어-떨어지는-숫자-배열-두-정수-사이의-합저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)