[문제]
두 정수 a, d 와 길이가 n인 boolean 배열 included가 주어집니다.
첫째항이 a, 공차가 d인 등차수열에서 Included[i]가 i + 1 항을 의미할 때,
이 등차수열의 1항부터 n항까지 included가 true인 항들만 더한 값을 return 하는 solution 함수를 작성해주세요.
[Algorithm]
반복문에서 조건문을 사용하여 배열의 해당 인덱스가 true 경우의 등차수열 해당 항을 계산해서 더해주기
[Code]
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);
continue;
}
}
return answer;
}
}
[+ 다른 사람 풀이]
import java.util.stream.IntStream;
class Solution {
public int solution(int a, int d, boolean[] included) {
return IntStream.range(0, included.length).map(idx -> included[idx]?a+(idx*d):0).sum();
}
}
[+ Plus]
* Java Stream
: 데이터 소스를 추상화하여 데이터 소스가 무엇이던 간에 같은 방식으로 다룰 수 있게 되어 코드의 재사용성을 높임
✔️ 데이터 소스를 변경하지 않음
✔️ 일회용
✔️ 작업을 내부 반복으로 처리
* IntStream
: 지정된 범위의 연속된 정수를 스트림으로 생성하여 반환
ex. IntStream.range(a, b).map ~
✔️ range는 end를 포함하지 않고, rangeClosed는 end를 포함
💡 stream 활용에 익숙해지기
한 줄에 끝내다니 천재 ~ ㅜ
'Algorithm Study' 카테고리의 다른 글
[Java Algorithm] 프로그래머스 Lv.0 _ 코드 처리하기 (0) | 2024.10.30 |
---|---|
[Java Algorithm] 프로그래머스: 해시 _ 완주하지 못한 선수 (0) | 2024.07.11 |
[Java Algorithm] 프로그래머스: 해시 _ 폰켓몬 (0) | 2024.07.11 |
[Java Algorithm] 프로그래머스 Lv.0 _ 조건 문자열 (0) | 2024.03.11 |
[Java Algorithm] 프로그래머스 Lv.0 _ 홀짝에 따라 다른 값 반환하기 (1) | 2024.03.11 |