LeetCode - 1. Two Sum

henu·2023년 8월 17일
0

LeetCode

목록 보기
1/186
post-thumbnail

Problem

정수 배열 nums와 정수 target이 주어질때, nums의 두 요소의 합이 target이 되는 두 인덱스를 배열에 담아 리턴하라. 순서는 상관없다.
각 입력은 정확히 하나의 해답만 있고 같은 요소를 두 번 사용하지 않는다.

Example 1

Input: nums = [2,7,11,15], target = 9
Output: [0,1]
Explanation: Because nums[0] + nums[1] == 9, we return [0, 1].

Example 2

Input: nums = [3,2,4], target = 6
Output: [1,2]

Example 3

Input: nums = [3,3], target = 6
Output: [0,1]

Constraints

  • 오직 하나의 유효한 답만 존재한다.

Solution

var twoSum = function(nums, target) {
    for(let i=0; i<nums.length; i++) {
        if(nums.includes(target - nums[i], i+1)) {
            return [i, nums.indexOf(target - nums[i], i+1)]
        }
    }
};

Explanation

nums 배열을 첫 번째 요소부터 순차적으로 접근한다.
그리고 target과 현재 요소의 차를 구한다.
그 값이 다음 인덱스 이후부터 존재하는지 확인해서(includes 이용) 존재한다면
현재 인덱스와 그 값의 인덱스(indexOf 이용)를 배열에 담아서 리턴한다.
includesindexOf 메소드 사용시 두 번째 파라미터에 인덱스를 전달하여 해당 인덱스부터 검색할 수 있다.

0개의 댓글