https://school.programmers.co.kr/learn/courses/30/lessons/181931
function solution(a, d, included) {
const arr = Array(included.length).fill(a).reduce((acc, cur, idx)=>{
return [...acc, !!(idx) ? acc[acc.length-1]+d : cur]
},[])
return arr.reduce((acc,cur,i)=>included[i] ? acc + cur : acc + 0, 0)
}
공차 d
가 누적된 배열을 만들고, 다시 reduce
하여 합을 구했다.
그럴 필요 없이 공차를 인덱스만큼 곱해서 합을 구하면 되었다. 풀고 나서 생각남.
function solution(a, d, included) {
return included.reduce((acc,cur,i)=> cur ? acc + a + d * i : acc, 0)
}
https://school.programmers.co.kr/learn/courses/30/lessons/181930
function solution(a, b, c) {
const setDice = [...new Set([a,b,c])]
if (setDice.length === 3) return a + b + c
if (setDice.length === 2) return (a + b + c) * (a**2 + b**2 + c**2)
return (a + b + c) * (a**2 + b**2 + c**2) * (a**3 + b**3 + c**3);
}
Set
을 이용해 같은 숫자가 몇 개인지 구분했다.
https://school.programmers.co.kr/learn/courses/30/lessons/181929
function solution(num_list) {
const sum = num_list.reduce((acc,cur)=>acc+cur, 0);
const multi = num_list.reduce((acc,cur)=>acc*cur,1);
return multi < sum**2 ? 1 : 0;
}
누적값을 reduce
로 계산했다.
https://school.programmers.co.kr/learn/courses/30/lessons/181928
function solution(num_list) {
let odd = "", even = "";
num_list.forEach((v)=>{
if (!(v % 2)) {
even += v+"";
} else {
odd += v+"";
}
})
return +odd + +even;
}
odd(홀수)
와 even(짝수)
를 구분하여 이어붙인다. number
타입에 +""
를 하면 string
타입이 되고, string
앞에 +
붙이면 number
가 된다.
https://school.programmers.co.kr/learn/courses/30/lessons/181927
function solution(num_list) {
const [last1, last2, ...rest] = [...num_list].reverse();
return [...num_list, last1 > last2 ? last1 - last2 : last1 * 2];
}
num_list
복사본을 reverse
하여 구조분해할당
으로 원소를 추출했다. 반환값 앞쪽에는 스프레드
로 기존 num_list
를 할당하고, 새로 추가되는 요소는 조건에 따라 추가했다.