Backend
home
✏️

Day1 (3/5) - 두 수의 합

생성 일시
2026/03/05 10:23
알고리즘/자료구조 유형
HashMap

문제

배열에서 두 수의 합이 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
복사