본문 바로가기
Study/코딩테스트 연습

프로그래머스 lv0 - 짝수의 합

by prlkt5200 2024. 9. 17.
반응형

짝수의 합 문제입니다.

나름대로 규칙을 발견해 풀었다는 것에 만족하였으나, 아직은 문제를 풀면서 어떤 식으로 구현해보면 좋지 않을까 하는

사고력이 약하다는 것을 체감할 수 있었습니다.

class Solution {
    public int solution(int n) {
      int sum = 0;
        
        //짝수의 개수가 2로 정수를 나눴을 때의 몫의 개수와 똑같다는 규칙을 발견
        if(n <= 1000 && n > 0){
      
        for(int i =1; i <= (n/2); i++){
            sum += (i*2);
        }
      }
          return sum;
        
}
}

 

아래는 다른 사람의 풀이입니다.

i를 짝수값씩 올리고, 그 다음 더한다는 방식인데, for문의 증감연산자를 응용해서 활용하는 법을 알 수 있었고,

1씩 올려야 된다는 고정관념을 깰 수 있게 해줘서 좋은 것 같습니다.


class Solution {
    public int solution(int n) {
        int answer = 0;

        for(int i=2; i<=n; i+=2){
            answer+=i;
        }

        return answer;
    }
}

 

그리고 마지막으로 스트림을 활용한 풀이인데, 개인적으로 흥미가 있는 풀이였습니다.

import java.util.stream.IntStream;
class Solution {
    public int solution(int n) {
    //0부터 n까지의 스트림을 생성합니다.
        return IntStream.rangeClosed(0, n)
        //짝수만 필터링하여 더합니다.
            .filter(e -> e % 2 == 0)
            .sum();
    }
}
반응형