🎈 내가 생각한 방법
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 문을 사용하지 않아도 된다.
'코딩테스트' 카테고리의 다른 글
코딩 테스트 풀이 - 문자열 뒤집기 | split, reverse, join (0) | 2023.10.12 |
---|---|
코딩 테스트 풀이 - 배열 원소의 길이 | forEach 문, for of 문, map 이용해 풀기 (1) | 2023.10.12 |
코딩테스트 풀이 - 양꼬치 | 논리연산자 || , && (0) | 2023.10.04 |
코딩테스트 풀이 - 배열의 평균값 | for, forEach 문, 나누기 연산자 / (0) | 2023.10.04 |
8월 9일 코딩테스트 풀이 - 나이 출력, 각도기 (0) | 2023.08.09 |