본문 바로가기
코딩테스트/코테_java

[프로그래머스] 홀짝에 따른 다른 값 반환하기

by 숭늉다섯 2023. 11. 26.
문제
양의 정수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();
    }