Code Kata #1 twoSum
💻TwoSum
twoSum함수에 숫자배열과 '특정 수'를 인자로 넘기면, 더해서 '특정 수'가 나오는 index를 배열에 담아 return해 주세요.
nums: 숫자 배열
target: 두 수를 더해서 나올 수 있는 합계
return: 두 수의 index를 가진 숫자 배열
☕첫번째 풀이
const twoSum = (nums, target) => {
const b = [];
for(i=0; i<nums.length; i++){
for(j=1; j<nums.length; j++){
if (nums[i] + nums[j] === target) {
// return [i,j]
b.push(nums.indexOf(nums[i]));
b.push(nums.indexOf(nums[j]));
}
}
}
return b;
}
빈 배열 B
를 만들고 반복문을 2번 돌려 조건에 해당하는 index
를 빈 배열 b
에 채워넣었다.
💡두번째 풀이
const twoSum = (nums, target) => {
//const b = [];
for(i=0; i<nums.length; i++){
for(j=1; j<nums.length; j++){
if (nums[i] + nums[j] === target) {
return [i,j]
//b.push(nums.indexOf(nums[i]));
//b.push(nums.indexOf(nums[j]));
}
}
}
//return b;
}
요즘 JS 메모리 할당에 대해서 심심풀이로 찾아보고 있는데,
굳이 빈 배열 b
라는 변수를 생성해서 '메모리 공간 할당', '접근', '수정' 등 내부적으로 몇가지 절차가 실행되게끔 짠 코드가 좋은 코드일지란 의문이 들었다.
그래서 빈 배열 'b'를 없애고 코드를 리팩토링 해보았다.
twoSum함수에 숫자배열과 '특정 수'를 인자로 넘기면, 더해서 '특정 수'가 나오는 index를 배열에 담아 return해 주세요.
nums: 숫자 배열
target: 두 수를 더해서 나올 수 있는 합계
return: 두 수의 index를 가진 숫자 배열
const twoSum = (nums, target) => {
const b = [];
for(i=0; i<nums.length; i++){
for(j=1; j<nums.length; j++){
if (nums[i] + nums[j] === target) {
// return [i,j]
b.push(nums.indexOf(nums[i]));
b.push(nums.indexOf(nums[j]));
}
}
}
return b;
}
빈 배열 B
를 만들고 반복문을 2번 돌려 조건에 해당하는 index
를 빈 배열 b
에 채워넣었다.
const twoSum = (nums, target) => {
//const b = [];
for(i=0; i<nums.length; i++){
for(j=1; j<nums.length; j++){
if (nums[i] + nums[j] === target) {
return [i,j]
//b.push(nums.indexOf(nums[i]));
//b.push(nums.indexOf(nums[j]));
}
}
}
//return b;
}
요즘 JS 메모리 할당에 대해서 심심풀이로 찾아보고 있는데,
굳이 빈 배열 b
라는 변수를 생성해서 '메모리 공간 할당', '접근', '수정' 등 내부적으로 몇가지 절차가 실행되게끔 짠 코드가 좋은 코드일지란 의문이 들었다.
그래서 빈 배열 'b'를 없애고 코드를 리팩토링 해보았다.
역시 빈 배열을 사용하지 않는 코드가 조금 더 성능이 좋았다.
JS function benchmark등에 대해 찾아보니 브라우저마다 성능이 천차만별이라 한다..
아마 브라우저 내의 JS엔진 구동 방식에 따른 차이이리라
Author And Source
이 문제에 관하여(Code Kata #1 twoSum), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@kich555/Code-Kata-1-twoSum저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)