문제
양의 정수n이 매개변수로 주어질 때,n이 홀수라면n이하의 홀수인 모든 양의 정수의 합을 return 하고n이 짝수라면n이하의 짝수인 모든 양의 정수의 제곱의 합을 return 하는 solution 함수를 작성해 주세요.
풀이
홀짝을 if문으로 구분한 다음. n까지의 반복을 통해 짝홀을 조건에 맞게 각각 더해줌..
public int solution(int n) {
int answer = 0;
if(n%2==1){
for(int i=1; i<=n ;i+=2){
answer+=i;
}
}else{
for(int i=2;i<=n;i+=2){
answer+=(i*i);
}
}
return answer;
}
다른사람 풀이
스트림과 람다식을 알면 풀 수 있다.. (난 아님)
public int solution(int n) {
if(n%2 == 0) {
return IntStream.rangeClosed(1,n).filter(i->i%2==0).map(i->(int) Math.pow(i,2)).sum();
}
return IntStream.rangeClosed(1,n).filter(i->i%2==1).sum();
}
'코딩테스트 > 코테_java' 카테고리의 다른 글
[프로그래머스] 카운트 업 (1) | 2023.11.28 |
---|---|
[프로그래머스] 수 조작하기1 (1) | 2023.11.27 |
[프로그래머스] flag에 따라 다른 값 반환하기 (0) | 2023.11.25 |
[프로그래머스] 원소들의 곱과 합 (1) | 2023.11.24 |
[프로그래머스] 공배수 (1) | 2023.11.23 |