코딩테스트/Programmers

[프로그래머스] 등차수열의 합

grove1212 2025. 1. 23. 17:46

본인 풀이

pcce 대비중인데, 실전을 대비해 검색하지 않고 풀었다. for문 사용하지 않고 풀어도 됐을 건데 머리쓰기 귀찮았다,,,ㅎ
stream으로 풀었다.

import java.util.stream.*;

class Solution {
    public int solution(int a, int d, boolean[] included) {
        int answer = 0;
        int []arr = new int[included.length];
        arr[0] = a;
        for(int i = 1; i<arr.length; i++){
            arr[i] = arr[i-1] + d;
        }

        answer = IntStream.range(0, arr.length)
            .filter(i -> included[i])
            .map(i -> arr[i])
            .sum();
        return answer;
    }
}

다른 분 풀이

정석 풀이는 다음과 같다.

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 + (d*i);
            }
        }

        return answer;
    }
}