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) => {
// 아래 코드를 작성해주세요.
for(let i=0; i<nums.length-1; i++){
for(let j=i+1; j<nums.length; j++){
if(nums[i]+nums[j] === target){
return [i,j]
}
}
}
for문을 이용해 두가지 수를 정한 뒤 if문을 통해 배열에 넣고 연산자를 넣어 비교해서 결과값 리턴
length,length-1을 통해서 두가지수를 설정
내짝꿍 정답
const twoSum = (nums, target) => {
// 아래 코드를 작성해주세요.
for(let i=0; i<nums.length; i++){
if(nums.indexOf(target-nums[i]) > i){
return [i,nums.indexOf(target-nums[i])]
}
}
}
for문을 이용해서 수를 정한뒤 타겟값에서 indexOf 배열에 들어간 값을 타겟값 빼고 들어간 배열보다 크다면
그값과 뺀값을 리턴하면 값이나옴(?)
짝궁의 설명덕에 완벽하게 이해했지만 나의 낮은 언어능력으로 설명을 못하겠다.
자바스크립트 다까먹어서 다시한번 공부해야겠다고 느꼈고, 짝꿍을 잘지정해줘서 덕분에 짝궁한테 많이배울것같다. 짝꿍이 너무고맙다.