티스토리 뷰
문제 설명
정수 n이 주어질 때, n이하의 짝수를 모두 더한 값을 return 하도록 solution 함수를 작성해주세요.
제한사항
0< n ≤1000
-짝수 구하는 법, n이하의 짝수 구하는 법 구글링하다가 답답하고 이해 안돼서 갓지피티의 힘을 빌렸다. 이렇게 공부하지 말라고 했는데.. 개념을 모르는데 어떡해요...
function solution(n) {
let sum = 0; // 짝수의 합을 저장할 변수, 처음에는 0으로 시작합니다.
for (let i = 1; i <= n; i++) { // 1부터 n까지 모든 숫자를 확인합니다.
if (i % 2 === 0) { // i가 짝수인지 확인합니다.
sum += i; // i가 짝수라면 sum에 더해줍니다.
}
}
return sum; // 모든 짝수를 더한 결과를 반환합니다.
}
-하나하나 살펴보자.
1. 'function solution(n)' : 'solution'이라는 함수를 정의한다. 이 함수는 'n'이라는 숫자를 입력으로 받는다.
2. 'let sum = 0;' 'sum'이라는 변수를 선언한다. 이 변수는 짝수를 더한 합계를 저장하기 위해 사용된다. 처음에는 0으로 시작한다.
*let - 변수를 선언하는 데 사용하는 키워드. 'let'을 사용하여 선언된 변수는 블록('{}')스코프를 가지며, 이는 변수가 선언된 블록 내부에서만 접근 가능하다는 의미.
3. 'for (let i = 1; i <= n; i++)'
*for 반복문은 특정 코드를 여러 번 반복 실행할 때 사용된다. for 반복문은 다음과 같은 형태를 가진다.
for (초기식;조건식;증감식 {
//반복해서 실행할 코드
}
- 3-1. 각 부분의 역할
초기식 : 반복문이 시작될 때 한 번만 실행되는 코드. 보통 반복을 제어할 변수를 초기화하는 데 사용된다.
조건식 : 각 반복이 시작될 때마다 평가되는 표현식. 이 조건식이 'true'이면 반복문 안의 코드가 실행되고, 'false'이면 반복문이 종료된다.
증감식 : 반복문 안의 코드가 실행된 후에 실행되는 코드. 보통 반복을 제어할 변수를 증가시키거나 감소시키는 데 사용된다.
>예제
for (let i = 0; i < 5; i++) {
console.log(i);
}
- 이 코드를 실행하면, 'console.log(i)'가 5번 실행되고 각 반복마다 'i'의 값이 출력된다. 출력 결과는 다음과 같다.
0
1
2
3
4
- 각 부분을 자세히 설명하면,
3-3-1. 초기식 : ('let i = 0;')
: 반복문이 시작될 때 'i'라는 변수를 선언하고 '0'으로 초기화한다.
*왜 n이 아니라 i를 쓰는 걸까?
예제의 전체 코드를 살펴 보면,
function solution(n) {
let sum = 0; // 짝수를 더할 변수 sum을 0으로 초기화합니다.
for (let i = 0; i <= n; i++) { // i가 0부터 n까지 증가하며 반복합니다.
if (i % 2 === 0) { // i가 짝수인지 확인합니다.
sum += i; // i가 짝수라면 sum에 더해줍니다.
}
}
return sum; // 모든 짝수를 더한 값을 반환합니다.
}
이 코드에서는 반복문을 사용하여 '0'부터 'n'까지 모든 숫자를 확인한다. 'i'는 <현재 반복문이 처리 중인 숫자>를 나타낸다.
각 변수의 역할
- 'n' : 함수의 매개변수로, 주어진 숫자. 우리는 이 숫자 이하의 모든 짝수를 더하고 싶다.
- 'i' : 반복문의 변수로, '0'부터 'n'까지의 모든 숫자를 차례로 나타낸다.
- 'sum' : 짝수들을 모두 더한 값을 저장할 변수이다.
3-3-2. 조건식 ('i<5';')
: 반복이 시작될 때마다 'i<5'가 참인지 거짓인지 평가한다. 'i'가 5보다 작으면 조건식이 참('true')가 되어 반복문 안의 코드가 실행된다. 'i'가 5 이상이 되면 조건식이 거짓('false')이 되어 반복문이 종료된다.
3-3-3. 증감식 ('i++')
: 반복문 안의 코드가 실행된 후에 'i'를 1씩 증가시킨다. 이는 'i = i+1'과 동일하다.
예제 설명
- 처음에 'i'는 '0'으로 초기화된다.
- 'i < 5'가 참이므로 'console.log(i)'가 실행되어 '0'이 출력된다.
- 'i++'에 의해 'i'는 '1'이 된다.
- 다시 'i < 5'가 평가되고, 참이므로 'console.log(i)'가 실행되어 '1'이 출력된다.
- 이 과정이 'i'가 '5'가 될 때까지 반복된다.
- 'i'가 '5'가 되면 'i < 5' 가 거짓이 되어 반복문이 종료된다.
연산자에 대한 추가 설명, ++ , +=
1. ++
- i++ 는 'i = i +1'과 동일한 역할을 한다. 즉, 'i'를 1씩 증가시키는 역할을 한다.
2. +=
- 'sum += i;'는 'sum = sum + i '와 동일하다. 즉, '+='연산자는 프로그래밍에서 덧셈과 할당을 한 번에 수행하고, 'sum'에 현재 'i'값을 더한 후, 그 결과를 다시 'sum'에 저장한다.
즉, for 반복문은 'i'라는 변수를 1부터 'n'까지 증가시키면서 반복한다. 예를 들어 'n'이 5라면 'i'는 1,2,3,4,5가 된다.
4. 'if (i % 2 === 0)' : 'i'를 2로 나눈 나머지가 0인지 확인한다.('%'연산자는 나머지를 확인한다.) 'i % 2 === 0' 이 참이라면 'i'는 짝수이다. 예를 들어 2%2는 0이고, 4%2도 0이다.
5. 'sum += i;' 'i'가 짝수라면, 'sum'에 'i'를 더한다. 예를 들어 'sum'이 0이고 'i'가 2라면, 'sum'은 이제 2가 된다. 다음에 'i'가 4라면, 'sum'은 2+4가 되어 6이 된다.
6. 'return sum;' : 반복문이 끝난 후, 'sum'을 반환한다. 이것이 'n'이하의 모든 짝수를 더한 값이다.
'스파르타 > 알고리즘 코드카타' 카테고리의 다른 글
| 코딩 테스트 - 짝수와 홀수 (0) | 2024.07.11 |
|---|---|
| 코딩 테스트 - 배열의 평균값 (0) | 2024.07.10 |
| 코딩 테스트 - 각도기 (0) | 2024.07.08 |
| 코딩 테스트 - 숫자 비교하기 (0) | 2024.07.05 |
| 코딩테스트 - 두 수의 몫 구하기 풀이 과정 (0) | 2024.07.03 |