카테고리 없음

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

nam_ji 2024. 6. 8. 15:58

등차수열의 특정한 항만 더하기

문제

  • 정수 a, d와 논리형 배열 included가 매개변수로 주어집니다.
  • 첫째항이 a, 공차가 d인 등차수열 included[i]가 i + 1항을 의미할 때,
  • 이 등차수열의 1항부터 n항까지 included가 true인 항들만 더한 값을 출력하는 문제입니다.
  • a d included result
    3 4 [true, false, false, true, true] 37
    7 1 [false, false, false, true, false, false, false] 10


테스트 (인텔리제이)

  • included의 원소만큼 순회하면 되기 때문에 for문으로 included의 크기만큼 순회하도록 합니다.
  • 그 안에 if문을 사용해서 included의 원소가 true일 때 a의 값에 i 자리에 d를 곱하게 하면 됩니다.
public class 등차수열의_특정한_항만_더하기 {
  public static void main(String[] args) {
    /*
    정수 a, d와 논리형 배열 included가 매개변수로 주어집니다.
    첫째항이 a, 공차가 d인 등차수열 included[i]가 i + 1항을 의미할 때,
    이 등차수열의 1항부터 n항까지 included가 true인 항들만 더한 값을 출력하는 문제입니다.
    a	d	included	                                        result
    3	4	[true, false, false, true, true]	                37
    7	1	[false, false, false, true, false, false, false]	10
     */

    int a = 3;
    int d = 4;
    boolean[] included = {true, false, false, true, true};
    int answer = 0;
    // 3 7 11 15 19

    for (int i = 0; i < included.length; i++) {
      if (included[i]) {
        answer += a + (i * d);
      }
    }
    System.out.println(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 + (i * d);
            }
        }
        return answer;
    }
}