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 |
댓글