카테고리 없음
[프로그래머스 / 자바] - 등차수열의 특정한 항만 더하기
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;
}
}