코딩테스트

코딩테스트 풀이 - 짝수의 합 / 반복문, 나머지 연산자 %, push

히새 2023. 8. 22. 19:50

 

🎈 내가 생각한 방법

 

1. n 보다 작은 짝수를 구한 값을 담은 배열을 만든다.

2. 그 배열의 합을 구한다.

 

처음에 이렇게 시도했는데 이상하게 오류가 났다. 지금보니 짝수 배열을 만드는 반복문 종료를 제대로 안했구나

 

const even = new Array();
const even = [];

이 둘의 차이를 모르겠다.

 

만들어지는 것은 똑같은데, new Array 를 쓰면 constructor (생성자) 까지 생성해준다.

fill 을 사용해서 배열을 채워서 만들때에는 위의 방법이 사용되기도 하지만 권장하는 방법은 아래의 방법이다.

 

결론적으로 이 코드를 작성하기 위해 필요했던 기술?들은 아래와 같다

 

🎈 반복문

 

n 보다 작거나 같은 숫자를 0부터 1씩 증가하는 반복문,

배열의 길이까지 0부터 1씩 증가하는 반복문을 작성해주었다.

 

 

🎈 나머지 연산자 %

 

값에 상관없이 " 나머지 " 를 구해주는 연산자이다.

10 % 2 = 0
10 % 3 = 1

2로 나눴을 때 나머지가 0이면 짝수, 나머지가 1이면 홀수로 짝수를 골라낼 때 사용하였다.

 

 

🎈 push 메써드

 

배열이름.push( i ) : 배열의 맨 마지막에 i 를 추가한다.

 


뭔가 분명히 더 짧고 간결한 코드가 있을 것 같은 느낌이 든다.

바로바로 합을 구하는.. 그런 천재같은...

근데 내 머리로는 이 방법밖에 떠오르지가 않는다.

 

🔽🔽🔽 멋사 6기 이동호 님의 도움 🔽🔽🔽

 

빈 배열을 만들 필요가 없다.

let evenPluse = 0; 을 첫번째 for 문 위로 올린 다음, even 값을 빈 배열에 push 해주는 것이 아니라 evenPlus += i 로 바로 합을 구해줄 수 있다.

i++ 가 아니라 i = i + 2, 즉 i += 2 로 작성하면 짝수를 구할 때 나머지연산자와 if 문을 사용하지 않아도 된다.