카테고리 없음
[Javascript : programmers] 홀짝에 따른 다른 값 반환하기 (Lv.0) ft. Array.from()
isfp_yykkng
2024. 8. 2. 12:32
[Javascript : programmers] 홀짝에 따른 다른 값 반환하기 (Lv.0) ft. Array.from()
문제
나의 정답 풀이
function solution(n) {
const numarr = Array.from({length: n}, (v, i) => i + 1);
return n%2 != 0 ?
numarr.filter(v=>v%2 != 0).reduce((acc,cur)=> acc += cur, 0) :
numarr.filter(v=>v%2==0).reduce((acc,cur)=> acc += cur**2, 0)
}
1부터 n까지의 숫자배열을 만들고 n이 홀수라면 홀수 원소들의 합을 짝수라면 짝수 원소들의 제곱의 합을 reduce를 통해 구하고 반환한다.
새로 배운 풀이 💥
function solution(n) {
if(n%2===1)
return (n+1)/2*((n + 1)/2) ;
else
return n*(n+1)*(n+2)/6;
}
n이 짝수일 때는 등차수열의 합 공식을 적용하였고, n이 홀수일 때는 자연수 거듭 제곱의 합을 구하는 공식을 적용하여 문제를 해결한 풀이이다. (수학 공식을 이용한 풀이라 참고하면 좋을 것 같아서 가져왔습니다.)
학습 내용 ⭐
- Array.from( <배열로 변환하고자 하는 객체>, map ) : 객체를 배열로 변환하거나 배열내 연산이 필요할 때 사용한다.
// String을 배열로 변경하기
console.log(Array.from('lion')); // ['l','i','o','n']
// 배열내 연산 (1*1=1, 2*2=4, 3*3=9 / 1+1=2, 2+2=4, 3+3=6)
console.log(Array.from([1, 2, 3], x => x * x)); // [1, 4, 9]
console.log(Array.from([1, 2, 3], x => x + x)); // [2, 4, 6]
//숫자 1부터 N개만큼 배열 채우기
const N = 10;
console.log(Array.from({length: N}, (v, i) => i + 1)); // [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]