class Solution {
public:
vector<int> twoSum(vector<int>& nums, int target) {
unordered_map<int, int> m;
// 예시 2,7,11,15 / 9
for (int i = 0; i < nums.size(); i++)
{
/*
* 솔루션 1) 해당 값을 find
*
* 7이 없다 > 2 : 0
* 9 - 7 = 2 > 2가 존재
* nums[i]=7 > 1, 9
*
* int idx = target - nums[i];
if (m.find(idx) == m.end())
m[nums[i]] = i;
else
return { m[idx],i };
*/
/*
* 솔루션 2) 해당 값을 조합
*
* 9 - 2 = 7
* m에 7이 없음 > m[2] = 0
*
* 9 - 7 = 2
* m에 2가 있음 > 2 : 0 / 현재 인덱스 1 > 정답 0, 1
*
* int chkNum = target - nums[i];
if (m.count(chkNum))
return { m[chkNum], i };
m[nums[i]] = i;
*
*/
}
return { -1, -1 };
}
};