반응형
코딩테스트 연습 - 등차수열의 특정한 항만 더하기
문제

예시

정수 a 와 b가 주어집니다. a는 첫째항, d는 공차 입니다.
그리고 included란 배열이 주어지는데 배열안엔 "true" 와 "false" 가 무작위로 섞여있습니다.
이 배열의 요소가 "true"일때 해당하는 인덱스값의 항을 구하면 됩니다.
쉬운 문제 인거 같습니다!
included = [true, false, false, true, true];
let a = 3;
let d = 4;
//3 7 11 15 19
문제가 이렇게 주어졌다면 우리는 첫째항이 3인, 공차가 4인 항을 배열의 수만큼인 5개만큼 나열해야 합니다.
그렇다면 항은 3 7 11 15 19 이렇게 나오므로 "ture" 자리인 3, 15 , 19 를 더하여 답은 37이 됩니다.
풀이가 다 나왔습니다. 이제 코드로 짜면 됩니다.
included = [true, false, false, true, true];
let a = 3;
let d = 4;
let answer = 0;
included.forEach((e, i)=>{ //forEach로 배열의 수만큼 반복하기
if(e == true){ //e == 엘리먼트(배열 요소가 "true" 일시 참)
answer += a + (d * i) //answer에 첫째항 + (등차 * 인덱스값) 계속 더해주기
}
});
console.log(answer);
// 37
이상 간단한 문제를 풀어봤습니다!

[ 테스트 통과한 모습 ]