- 수학적 사고가 코드를 간결하게 만든다. 수학을 공부해야 할 이유가 있는거다. . . 후.
Q )
두 정수 a, d와 길이가 n인 boolean 배열 included가 주어집니다.
첫째항이 a, 공차가 d인 등차수열에서 included[i]가 i + 1항을 의미할 때,
이 등차수열의 1항부터 n항까지 included가 true인 항들만 더한 값을 return 하는 solution 함수를 작성해 주세요.
[Java]
public int solution(int a, int d, boolean[] included) {
int answer = 0;
for (int i=0; i<included.length; i++) {
boolean flag = included[i];
if (i != 0) a += d;
if (flag) answer += a;
};
return answer;
}
for(int i = 0; i < included.length; i++){
if(included[i]){
answer += a + (d*i);
}
}
- 수학적 사고를 하자..
return IntStream.range(0, included.length).map(idx -> included[idx]?a+(idx*d):0).sum();
- 이놈의 스트림!
https://developer-rooney.tistory.com/132
[Java] .length, .length(), .size()
Java의 .length, .length(), .size() Java에서 길이를 구하는 대표적인 메소드는 .length와 .length(), .size()가 있습니다. .length는 배열의 길이를 확인할 때 사용되고, .length()는 문자열의 길이를, .size는 Collections
developer-rooney.tistory.com
[Python]
answer = 0
for i in range(len(included)):
answer += (a + d * i) * int(included[i])
return answer
- included 리스트의 길이만큼 반복합니다. i는 인덱스
- a + d * i는 등차수열의 i번째 항을 계산
- included[i]가 True라면 1, False라면 0
return sum(a + i * d for i, f in enumerate(included) if f)
리스트 컴프리헨션 및 enumerate:
- enumerate(included)는 included 리스트의 각 항목에 대해 인덱스 i와 값 f를 생성.
- if f는 included 리스트의 항목 f가 True일 때만 조건을 만족
1) 리스트 컴프리헨션
## 리스트 생성하기 기존에 배운 문법으로 1부터 10까지 정수를 순서대로 가지고 있는 리스트를 생성하는코드는 다음과 같습니다. ``` numbers = [] for n i…
wikidocs.net