코딩테스트/LeetCode

[LeetCode] 1 - Two Sum

ShovelingLife 2024. 4. 3. 15:20
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 };
	}
};