정수 배열 nums와 정수 target이 주어져요. 더해서 target이 되는 두 원소의 인덱스를 배열로 반환해요.
정답은 항상 정확히 하나 있고, 같은 원소를 두 번 사용할 수 없어요. 인덱스는 오름차순으로 반환해요.
예시
예시 1
예시 2
예시 3
제한 사항
- 2 ≤ nums.length ≤ 10,000
- -10^9 ≤ nums[i] ≤ 10^9
- -10^9 ≤ target ≤ 10^9
- 정답은 유일하게 있어요.
이미 지나온 값을 해시맵에 { 값: 인덱스 }로 담아두면, 각 원소마다 target - 값이 있었는지 O(1)에 확인할 수 있어요.
javascriptCopy codefunction twoSum(nums, target) {const seen = new Map();for (let i = 0; i < nums.length; i++) {const need = target - nums[i];if (seen.has(need)) return [seen.get(need), i];seen.set(nums[i], i);}return [];}
이전 문제가장 많이 등장한 문자
다음 문제가장 긴 연속 수열
예시 테스트만 실행 (Cmd/Ctrl+Enter)
숨김 테스트까지 채점 (Cmd/Ctrl+Shift+Enter)
에디터를 불러오고 있어요…
코드를 작성하고Ctrl↵를 눌러 예시 테스트를 확인해 보세요.