문제
배열에서 두 수의 합이 target이 되는 인덱스 찾기
== 예시 ==
nums = [2,7,11,15]
target = 9
정답
[0,1]
C
복사
내가 작성한 답안
// Day1: 두 수의 합이 target이 되는 인덱스 찾기
// 2026-03-05 (목)
// 시간복잡도: O(n);
// 이런 유형의 문제는 HashMap으로 쉽게 해결할 수 있다.
import java.util.*;
public class TwoSumEx {
public static void main(String[] args) {
int[] nums = {2, 7, 11, 13};
int target = 9;
HashMap<Integer, Integer> map = new HashMap<>();
// for문을 한 번만 돌기 때문에 시간복잡도는 O(n)이다.
for (int i = 0; i < nums.length; i++) {
int complement = target - nums[i]; // 누적 합
if (map.containsKey(complement)) {
System.out.println(nums[i] + " " + i);
return;
}
map.put(nums[i], i);
}
}
}
Java
복사
오늘의 진행내용 정리
[Day 1]
문제
배열에서 두 수의 합이 target이 되는 인덱스 찾기
사용 알고리즘
HashMap
시간복잡도
O(n)
배운 점
- 굳이 이중 반복문을 쓸 필요없이 HashMap을 활용해서 바로 해결이 가능하다
- 투 포인터나 이진 탐색을 생각하지 말고 HashMap으로 해결하는 게 훨씬 효율적이다
C
복사

