본문 바로가기
Research/Coding Test

1. Two Sum

by RIEM 2023. 3. 19.
728x90

Intuition

  • numbs 요소들 중 2개의 합이 target이 되는 조합의 요소 2개를 찾은 다음,
  • 이 두 요소의 index를 반환하기
  • 항상 1개의 해결책만 존재한다는 조건

처음 든 생각은 2중 루프로 조합을 비교해가면 된다고 생각했다.

nums.length가 3개 미만인 경우, 바로 [0,1] 바로 리턴하여 코드를 정리해준다.

Approach

처음 이중 루프의 조건문을 i = 0, j = 1로 접근했으나 에러가 발생했다. i와 j가 동일하게 1번째 인덱스를 가르키고, 이 인덱스에 위치한 값이  5, target이 10일 경우를 생각해보자. 이 경우 5 + 5는 10이기 때문에 같은 인덱스를 정답([1, 1])으로 반환해버린다.

이 문제는 j 초기값에 절대값을 대입해서 발생한 문제다. j는 항상 i보다 다음 나와야지 서로 중복을 피할 수 있기에, j = 1을 j = i + 1로 바꿔서 j값이 동적으로 바뀌도록 수정해주었다.

Code

/**
 * @param {number[]} nums
 * @param {number} target
 * @return {number[]}
 */
var twoSum = function(nums, target) {

    // 요소가 2개인 경우, 즉각 반환
    if(nums.length === 2) return [0, 1];

    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];
            }
        }
    }

};
728x90

'Research > Coding Test' 카테고리의 다른 글

스택/큐_기능개발  (0) 2023.03.21
스택/큐_같은 숫자는 싫어  (0) 2023.03.21
20. Valid Parentheses  (0) 2023.03.21
13. Roman to Integer  (0) 2023.03.20
724. Find Pivot Index  (0) 2023.03.19

댓글