아무리 쉬운 코드도 리뷰 합니다.
양의 정수 n이 매개변수로 주어질 때, n이 홀수라면 n 이하의 홀수인
모든 양의 정수의 합을 return 하고 n이 짝수라면 n 이하의 짝수인
모든 양의 정수의 제곱의 합을 return 하는 solution 함수를 작성해 주세요.
제한사항
1 ≤ n ≤ 100
입출력 예
n result
7 16
10 220
입출력 예 설명
입출력 예 #1
예제 1번의 n은 7로 홀수입니다. 7 이하의 모든 양의 홀수는 1, 3, 5, 7이고
이들의 합인 1 + 3 + 5 + 7 = 16을 return 합니다.
입출력 예 #2
예제 2번의 n은 10으로 짝수입니다. 10 이하의 모든 양의 짝수는 2, 4, 6, 8, 10이고
이들의 제곱의 합인 22 + 42 + 62 + 82 + 102 = 4 + 16 + 36 + 64 + 100 = 220을 return 합니다.
----------------------------------------------------------------------------------
class Solution {
public int solution(int n) {
int answer = 0;
if (n % 2 == 1) { // n이 홀수인 경우
for (int i = 1; i <= n; i += 2) { // 1부터 n까지 홀수만 더함
answer += i;
}
} else { // n이 짝수인 경우
for (int i = 2; i <= n; i += 2) { // 2부터 n까지 짝수의 제곱만 더함
answer += i * i;
}
}
return answer;
}
}
설명
- 반복문: for 반복문을 이용하여 변수 i가 변수 n 값보다 작거나 같을 때까지 반복합니다.
- 반복문 내부에서 i는 각각의 홀수 또는 짝수로 설정됩니다.
- 조건문: if 문을 사용하여 n이 홀수인지 짝수인지 판단합니다.
- 만약 n이 홀수라면, n % 2 == 1이 됩니다 (참).
- 만약 n이 짝수라면, n % 2 == 0이 됩니다 (참).
예제 설명
- 예를 들어, n이 7이라면:
- n % 2 == 1이 되므로 조건은 참입니다.
- for 반복문에서 변수 i는 1부터 시작하여 2씩 증가합니다 (즉, 1, 3, 5, 7이 됩니다).
- 첫 번째 반복에서 i는 1이고, 1 % 2 == 1이 되므로 조건은 참입니다.
- 따라서 answer에 1이 더해집니다 (answer = 1).
- i는 2 증가하여 3이 되고, 다시 조건을 만족하여 answer에 3이 더해집니다 (answer = 4).
- 이 과정을 반복하여 최종적으로 answer는 16이 됩니다 (1 + 3 + 5 + 7).
- 만약 n이 10이라면:
- n % 2 == 0이 되므로 조건은 참입니다.
- for 반복문에서 변수 i는 2부터 시작하여 2씩 증가합니다 (즉, 2, 4, 6, 8, 10이 됩니다).
- 첫 번째 반복에서 i는 2이고, answer에 2의 제곱이 더해집니다 (answer = 4).
- i는 2 증가하여 4가 되고, 다시 answer에 4의 제곱이 더해집니다 (answer = 20).
- 이 과정을 반복하여 최종적으로 answer는 220이 됩니다 (2^2 + 4^2 + 6^2 + 8^2 + 10^2).
주요 코드 설명
- 조건문:
- if (n % 2 == 1): n이 홀수인지를 확인하는 조건문입니다. n을 2로 나눈 나머지가 1이면 홀수입니다.
- else: n이 짝수인 경우입니다.
- 홀수인 경우:
- for (int i = 1; i <= n; i += 2): 1부터 n까지 2씩 증가하는 반복문입니다. 이 반복문은 홀수만을 순회합니다.
- answer += i: 홀수인 i를 answer에 더합니다.
- for (int i = 1; i <= n; i += 2): 1부터 n까지 2씩 증가하는 반복문입니다. 이 반복문은 홀수만을 순회합니다.
- 짝수인 경우:
- for (int i = 2; i <= n; i += 2): 2부터 n까지 2씩 증가하는 반복문입니다. 이 반복문은 짝수만을 순회합니다.
- answer += i * i: 짝수인 i의 제곱을 answer에 더합니다.
- for (int i = 2; i <= n; i += 2): 2부터 n까지 2씩 증가하는 반복문입니다. 이 반복문은 짝수만을 순회합니다.
실행결과
정확성 테스트
테스트 1 〉 | 통과 (0.02ms, 77MB) |
테스트 2 〉 | 통과 (0.02ms, 76.3MB) |
테스트 3 〉 | 통과 (0.02ms, 72.3MB) |
테스트 4 〉 | 통과 (0.01ms, 74.4MB) |
테스트 5 〉 | 통과 (0.02ms, 74.6MB) |
테스트 6 〉 | 통과 (0.02ms, 79.3MB) |
테스트 7 〉 | 통과 (0.03ms, 75MB) |
테스트 8 〉 | 통과 (0.03ms, 75MB) |
테스트 9 〉 | 통과 (0.02ms, 74.8MB) |
테스트 10 〉 | 통과 (0.02ms, 76.7MB) |
테스트 11 〉 | 통과 (0.02ms, 78.2MB) |
테스트 12 〉 | 통과 (0.03ms, 72.3MB) |
테스트 13 〉 | 통과 (0.03ms, 73.2MB) |
테스트 14 〉 | 통과 (0.03ms, 74.7MB) |
테스트 15 〉 | 통과 (0.02ms, 73.1MB) |
테스트 16 〉 | 통과 (0.02ms, 77.9MB) |
테스트 17 〉 | 통과 (0.01ms, 73.7MB) |
테스트 18 〉 | 통과 (0.03ms, 72.7MB) |
테스트 19 〉 | 통과 (0.01ms, 76.1MB) |
테스트 20 〉 | 통과 (0.02ms, 78.3MB) |
채점 결과
정확성: 100.0
합계: 100.0 / 100.0
'ALGORITHM > 코딩 기초 트레이닝' 카테고리의 다른 글
[프로그래머스]flag에 따라 다른 값 반환하기 (0) | 2024.07.29 |
---|---|
[프로그래머스]조건 문자열 (0) | 2024.07.29 |
[프로그래머스]공배수 (0) | 2024.07.29 |
[프로그래머스]n의 배수 (0) | 2024.07.29 |
[프로그래머스]두 수의 연산값 비 (0) | 2024.07.29 |