TIL 14

임태진·2020년 12월 20일
0

✔️문제
twoSum함수에 숫자배열과 '특정 수'를 인자로 넘기면,
더해서 '특정 수'가 나오는 index를 배열에 담아 return해 주세요.
nums: 숫자 배열
target: 두 수를 더해서 나올 수 있는 합계
return: 두 수의 index를 가진 숫자 배열

예를 들어,
nums은 [4, 9, 11, 14]
target은 13

nums[0] + nums[1] = 4 + 9 = 13 이죠?

그러면 [0, 1]이 return 되어야 합니다.

가정
target으로 보내는 합계의 조합은 배열 전체 중에 2개 밖에 없다고 가정하겠습니다.
✔️답
const twoSum = (nums, target) => {
result = [];
for(i=0; i < nums.length; i++) {
for(j = i+1; j<nums.length; j++) {
if(nums[i]+nums[j]===target) {
result.push(i,j);
return result;
}
}
}
}

module.exports = { twoSum };
✔️해석
nums 와 target을 인자로 받고 이중for문을 사용하여 결과값을 도출했다.
두번째 for문에서 i+1 로 지정해주어 중복되지 않게했다.

✔️Test 모듈
const { twoSum } = require("./index");

describe("UnitTests", function() {
it("sum1", function() {
// Failure message:
// nums: [1,2,4,9]
// target: 13
expect(twoSum([1,2,4,9], 13)).toEqual([2,3]);
});
it("sum2", function() {
// Failure message:
// nums: [0,2,9,13,24]
// target: 24
expect(twoSum([0,2,9,13,24], 24)).toEqual([0,4]);
});
it("sum3", function() {
// Failure message:
// input: [0,1]
// target: 1
expect(twoSum([0,1], 1)).toEqual([0,1]);
});
});

profile
Frontend-Developer

0개의 댓글