반응형
짝수의 합 문제입니다.
나름대로 규칙을 발견해 풀었다는 것에 만족하였으나, 아직은 문제를 풀면서 어떤 식으로 구현해보면 좋지 않을까 하는
사고력이 약하다는 것을 체감할 수 있었습니다.

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();
}
}반응형
'Study > 코딩테스트 연습' 카테고리의 다른 글
| 프로그래머스 lv1 - 짝수와 홀수 (0) | 2024.09.18 |
|---|---|
| 프로그래머스 lv0 - 양꼬치 (0) | 2024.09.17 |
| 프로그래머스 lv0 - 각도기 (0) | 2024.09.16 |
| 프로그래머스 lv0 - 나머지 구하기 (0) | 2024.09.16 |
| 프로그래머스 lv0 - 출생연도 구하기 (0) | 2024.09.11 |