[프로그래머스] Level 0 홀짝에 따라 다른 값 반환하기
머리가 잘 안돌아가서 복잡하게 풀었는데, 다른 분들의 풀이를 보니 훨씬 간단하게 풀었더군요 ..
문제
양의 정수 n이 매개변수로 주어지고, n이 홀수이면 n 이하의 홀수인 모든 양의 정수의 합을 반환하고, n이 짝수면 n 이하의 짝수인 모든 양의 정수의 제곱의 합을 반환하는 메서드를 작성하라.
나의 답안
class Solution {
public int solution(int n) {
int oddSum = 0;
int evenSum = 0;
if (n % 2 == 1) {
for (int i=1; i <= n; i++) {
if (i % 2 != 0) {
oddSum += i;
}
}
return oddSum;
} else {
for (int i=1; i <= n; i++) {
if (i % 2 == 0) {
evenSum += i*i;
}
}
return evenSum;
}
}
}
보완사항
- sum 값을 불필요하게 oddSum, evenSum으로 나누어 선언할 필요 없이 하나의 변수 sum으로 선언
- for문에서 i값을 2씩 증가시키기
class Solution {
public int solution(int n) {
int sum = 0; // 변수 1개만 생성
if (n % 2 == 1) {
for (int i = 1; i <= n; i += 2) { // i값 2씩 증가
sum += i;
}
} else {
for (int i = 2; i <= n; i += 2) {
sum += i * i;
}
}
return sum;
}
}