본문 바로가기

JAVA/연습노트

[프로그래머스-자바] 등차수열의 특정한 항만 더하기

조건

1. 손코딩 연습

2. 기존 방식으로 풀어보고

3. 람다로 풀어볼 것

 

문제

 

풀이 과정

 

정답

 

1. 기존 풀이 방식

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;
        }
        for(int i=0;i<included.length;i++){
            if(included[i]==true){
                answer += arr[i];
            }
        }
        return answer;
    }
}

 

 

2. 람다 풀이 방식

import java.util.stream.IntStream;

class Solution {
    public int solution(int a, int d, boolean[] included) {
        return IntStream.rangeClosed(0, included.length-1)
            .filter(i->included[i]).map(i->a+d*i).sum();
    }
}