뭔가 더 간단하게 할 방법이 있을 것 같은데 나는 서술형처럼 풀어서 답을 냈다.
class Solution {
public int solution(int n) {
int answer = 0;
if (n%2 == 0 ) { // 짝수
for (int i=2; i<=n; i+=2) { // 2부터 시작해서 n까지 2를 더해간다
answer += i * i;
}
} else if (n%2 == 1) { // 홀수
for (int i=1; i<=n; i+=2) { // 1부터 시작해서 n까지 2를 더해간다
answer += i;
}
}
return answer;
}
}
다른 답변들 구경하다가 발견한 것
거듭제곱 구하는 메서드 : Math.pow(n,m)
나중에 유용하게 쓸 수 있을 것 같다!!
내 답변에서는 i * i 대신 Math.pow(i, 2)라고 쓰면 i 제곱이 된다.
더 간결한 답 공유합니다.
class Solution {
public int solution(int n) {
int answer = 0;
for(int i = n; i >= 0; i -= 2) {
answer += (n % 2 == 0) ? i * i : i;
}
return answer;
}
}
오호.......... 어차피 2씩 빠지는 건 똑같으니까 n부터 시작해서 2씩 빼면서 더하는 게 더 간단하구나!! for문 다르게 두 개 쓸 필요도 없고 너무 좋은걸! if문 대신에는 삼항 연산자로 더 간단하게!