문제를 보고 바로 떠오른생각
- 이중포문을 사용해서 전부 더해서 비교해준다.
- 1번에 이어서 포문을 하나만 사용할 수는 없는지에 대한 생각이 들었고, nums[i]+nums[j]=target이라는 식을 통해 역으로 이미 정해져있는 target을 이용 target-nums[i]=nums[j]를 푸는것으로 정했다.
- nums[i]+nums[j] = target을 만족하는 조건에서만 해당함수가 작동하면 되기에, 애초에 nums배열에서 target보다 큰 수는 제외해주는 방식이 좋겠다고 생각하게 되었다. -> 예시의 배열은 4개를 갖고 있지만, 만약 nums배열이 100만개정도 있다고 가정한다면 for문을 전부 돌리는 것도 낭비이며, target이 충분히 작을때, target보다 큰 수를 제외하고 함수를 작동시키면 의미있는 차이가 있을 것이라고 생각했다.
나의 풀이
array.filter(x<target) 을 이용해 nums배열에서 target보다 작은 요소만 남긴다.
indexOf(target-nums[i])가 -1이 아닌 배열의 위치를 찾아서,
return (i,indexOf(target-nums[i])를 해준다.
완성