문제 설명
양의 정수 n이 매개변수로 주어질 때, n이 홀수라면 n 이하의 홀수인 모든 양의 정수의 합을 return 하고 n이 짝수라면 n 이하의 짝수인 모든 양의 정수의 제곱의 합을 return 하는 solution 함수를 작성해 주세요.
제한사항
- 1 <= n <= 100
입출력 예
n | result |
7 | 16 |
10 | 220 |
class Solution {
public int solution(int n) {
int answer = 0;
for (int i = 1; i <= n; i++) {
if (n % 2 != 0) {
if (i % 2 != 0) {
answer += i;
}
} else {
if (i % 2 == 0) {
answer += Math.pow(i, 2);
}
}
}
return answer;
}
}
조건문이 중첩되어서 한눈에 보기에는 잘 파악되지 않을 수 있습니다. 우선 for문이 n만큼 순회합니다. n 이하의 수를 계산해야 하기 때문입니다. 인덱스가 아닌, 숫자를 다루는 것이므로 i는 0이 아닌 1부터 시작합니다.
첫번째 if문은 n이 홀수인지 짝수인지 판별합니다. 만약 n이 홀수라면 if문으로 n 이하의 모든 홀수를 찾아냅니다. 이렇게 찾아낸 홀수를 answer에 더하기 할당으로 계산합니다.
만약 n이 홀수가 아니라면(짝수라면) else로 넘어옵니다. 다시 if문으로 n 이하의 짝수를 찾아냅니다. 문제에서는 양의 정수의 제곱의 합을 반환하라고 했으므로, Math 클래스의 pow 메소드를 이용합니다. pow 메소드는 제곱한 수를 반환합니다. 방법은 다음과 같습니다.
Math.pow(밑, 지수) 밑 : 제곱근 지수 : 제곱하는 횟수 |
'프로그래머스 > Lv. 0(코딩 기초 트레이닝)' 카테고리의 다른 글
[프로그래머스 코딩테스트] 원소들의 곱과 합(Java) (0) | 2023.04.28 |
---|---|
[프로그래머스 코딩테스트] flag에 따라 다른 값 반환하기(Java) (0) | 2023.04.28 |
[프로그래머스 코딩테스트] 공배수(Java) (0) | 2023.04.28 |
[프로그래머스 코딩테스트] n의 배수 (0) | 2023.04.27 |
[프로그래머스 코딩테스트] 두 수의 연산값 비교하기(Java) (0) | 2023.04.27 |