목록으로
Two Sum
LeetCode #1Bronze해시맵배열탐색
정수 배열 nums와 정수 target이 주어질 때, 두 수의 합이 target이 되는 인덱스 쌍을 반환하세요. 각 입력에 정확히 하나의 해가 존재하며, 동일한 원소를 두 번 사용할 수 없습니다.
AI 분석 결과
0우수
AI 분석 점수
AlgoSu AI가 생성한 실제 분석 샘플입니다.
해시맵을 활용한 O(n) 풀이로, 불필요한 중첩 반복을 제거한 효율적인 구현입니다. Map 자료구조로 교체하면 타입 안전성이 더욱 향상됩니다.
시간:
O(n)공간: O(n)카테고리별 점수
correctness95
모든 엣지 케이스를 올바르게 처리합니다. 항상 정확한 인덱스 쌍을 반환합니다.
efficiency90
O(n) 시간복잡도와 O(n) 공간복잡도로 단일 패스 해시맵을 구축하여 최적에 가까운 성능입니다.
readability92
변수명이 직관적이고 코드 흐름이 명확합니다. 주석을 추가하면 유지보수성이 더 높아집니다.
bestPractice88
일반 객체 대신 Map을 사용하면 키 충돌 위험이 없고 타입 명확성이 향상됩니다.
제출 코드
1function twoSum(nums, target) {
2 const map = {};
3 for (let i = 0; i < nums.length; i++) {
4 const complement = target - nums[i];
5 if (map[complement] !== undefined) {
6 return [map[complement], i];
7 }
8 map[nums[i]] = i;
9 }
10 return [];
11}개선된 코드 예시
1function twoSum(nums, target) {
2 const map = new Map();
3 for (let i = 0; i < nums.length; i++) {
4 const complement = target - nums[i];
5 if (map.has(complement)) {
6 return [map.get(complement), i];
7 }
8 map.set(nums[i], i);
9 }
10 return [];
11}