[JS] 등차수열의 특정한 항만 더하기 programmers

0

코딩테스트

목록 보기
69/80
post-thumbnail

🎀 문제

두 정수 a, d와 길이가 nboolean 배열 included가 주어집니다. 첫째항이 a, 공차가 d인 등차수열에서 included[i]i + 1항을 의미할 때, 이 등차수열의 1항부터 n항까지 includedtrue인 항들만 더한 값을 return 하는 solution 함수를 작성해 주세요.

function solution(a, d, included) {
    var answer = 0;
    return answer;
}
solution(3, 4, [true, false, false, true, true])
// 37
solution(7, 1, 	[false, false, false, true, false, false, false])
// 10

🎀 등차수열 구하는 법

사실 수포자였던 나는 등차수열이 뭔지도 몰랐고...
chatGPT에게 등차수열이 대체 뭐고 어떻게 계산하는지 물어봤다. (솔직)

function solution(a, d, included) {
  	// a 는 첫째항
  	// d 는 공차값이 전달되었다
    let diffArray = []

    for(i=1; i <= included.length; i++){
        diffArray.push(a + (i - 1) * d);
    }
}

이렇게 구하면 된다고 한다... 🥲
GPT야 고마옹

🎀 내 답변

function solution(a, d, included) {
    let diffArray = []
    let answer = 0

    for(i=1; i <= included.length; i++){
        diffArray.push(a + (i - 1) * d);
    }

    included.map((item, index) => item ? answer += diffArray[index] : null)

    return answer
}
  1. for문을 돌려서 구해진 등차수열을 diffArray 배열에 담는다.
  2. map을 돌려서 included 배열의 itemtrue인 것들을 다 더해서 answer에 넣어주고 반환한다.
profile
일단 해. 그리고 잘 되면 잘 된 거, 잘 못되면 그냥 해본 거!

0개의 댓글