코드카타 1 (indexOf())

이재현·2021년 6월 25일
0

문제를 보고 바로 떠오른생각

  1. 이중포문을 사용해서 전부 더해서 비교해준다.
  2. 1번에 이어서 포문을 하나만 사용할 수는 없는지에 대한 생각이 들었고, nums[i]+nums[j]=target이라는 식을 통해 역으로 이미 정해져있는 target을 이용 target-nums[i]=nums[j]를 푸는것으로 정했다.
  3. 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])를 해준다.

완성

profile
항상 생각하는 개발자

0개의 댓글