Problem
Key Point
- target - nums[i]를 Key로 loop의 index를 Value로 Map에 저장한다.
- 해당 Key값을 만족하는 nums[i] 요소를 찾으면 결과를 리턴한다.
Code
public class TwoSum {
public void solution(int[] nums, int target) {
// 01. ds 담을 그릇
int[] result = new int[2];
Map<Integer, Integer> map = new HashMap<>();
// 02. for
for (int i = 0; i < nums.length; i++) {
if (map.containsKey(nums[i])) {
result[0] = map.get(nums[i]) + 1;
result[1] = i + 1;
} else {
map.put(target - nums[i], i);
}
}
System.out.println(Arrays.toString(result));
}
public static void main(String[] args) {
TwoSum twoSum = new TwoSum();
twoSum.solution(new int[]{2, 8, 11, 14}, 16);
}
}