Contents

등차수열의 특정한 항만 더하기(with.Java)

   Aug 23, 2023     1 min read

등차수열의 특정한 항만 더하기(with.Java)에 대하여 알아본 글입니다.

코딩 테스트 문제를 풀며, 풀었던 문제에 대한 회고와 다른 풀이 방법을 알아보며, 알아가고자 합니다. 문제에 대해 먼저 알아보겠습니다.

문제

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

문제에서 말하는 등차수열이란? 인접한 수의 차이가 같은 수의 나열입니다.

입출력 예시

a: 3 b: 4 included: [true, false, false, true, true] result: 37

즉, a와 d가 각각 3, 4이고 included의 길이가 5입니다. 이를 표로 나타내면 다음과 같습니다.

1항 2항 3항 4항 5항 등차수열: 3, 7, 11, 15, 19 included: true, false, false, true, true 따라서 true에 해당하는 1항, 4항, 5항을 더한 3 + 15 + 19 = 37을 return 합니다.

문제에 대한 나의 풀이

class Solution {
    public int solution(int a, int d, boolean[] included) {
        int answer = 0;
        for(int i = 0; i<included.length; i++){
            if(included[i]){
                answer += a;
            }
            a += d;
        }
        return answer;
    }
}
풀이 설명

included의 크기만큼 반복해야 하기 때문에 반복문을 사용하고 이후 boolean 배열의 included의 요소 중 true가 있다면 answer에 a의 값을 저장합니다. 등차수열인 점을 감안하여 반복문에서 a에 d의 값만큼을 계속 더하는 것으로 로직을 구현했습니다.