스파르타 (React_6기) 사전캠프

2024. 06. 10. (for문)

cha123hein 2024. 6. 10. 22:55

[오늘 새로 안 부분]

- for문 : 특정한 횟수만큼 반복하고 싶을 때 사용한다.

초기식, 조건식, 증감식이 필요하다.

- 기본형태 : for[let i =0; i<반복횟수; i++){

                         console.log(i)

                       }

[오늘의 공부]

  • 코드카타 9번 문제풀이
  • 웹개발 종합반 특강 3주차 (숙제까지 완료)

[추가 공부]

코드카타문제9. 짝수의 합

정수 n이 주어질 때, n이하의 짝수를 모두 더한 값을 return 하도록 solution 함수를 작성해주세요.

(0 < n ≤ 1000)

 

찾아보니, for문과 if문을 사용하여 문제 풀이를 할 수 있었다.

for문 : 반복문의 일종으로, 어떤 특정한 조건이 거짓으로 판별될 때까지 반복한다. 

for (시작점; 정지점; 간격) {
    console.log(출력)
    간격 자리 생략 후 안에서도 가능
}

 

시작점 (초기문) : 주로 우리가 변수를 지정해준다. 예를 들어 let i = 1;와 같이 for반복문에서 반복이 일어나는 동안의 주체적인 역할을 한다.

정지점 (조건문) : 우리가 지정해준 변수와 반복문을 멈추게 만드는 역할이다.

간격 (증감문) : 반복문이 어떠한 방향으로 나아갈지 나타내는 핸들과 유사한 역할을 한다.

function solution(n) {
   let sum = 0;
   for(let i = 2; i <= n; i++) {
        if(i % 2===0) {
            sum += i
     }
   }
  return sum
}

여기서 시작점 : let i =2

           조건문 : i <= n

           간격 : i++ (전위연산자로써, 값을 먼저 다하고, 그 값을 반환한다.)

if조건내용 : 짝수일 경우(i/2 나머지가 0일 경우)

 

그 외에도 등차수열 공식을 이용하여 문제를 풀 수도 있다.

등차수열 공식은 

(첫항+끝항)*항의 개수/2

인데, 여기서 1부터 n번까지의 짝수 합을 구하려면 첫항은 2, 끝항은 n, 항의 개수는 n/2이다.

위의 사항을 대입해보면, (2+n)*n/4 와 같은 공식이 나오는데,
이를 간단하게 하기 위해 n/2=m이라면, n=2m
(2+2m)*2m/4
= 4m(m+1)/4
=m(m+1)

여기서 짝수의 개수를 구하기 위해 소수점을 버려야하니 Moon.floor를 사용하면 된다.

function solution(n) {
var m = Math.floor(n/2);
return m*(m+1);
}