
-Code
import java.util.*;
class Solution {
public int[] twoSum(int[] nums, int target) {
int length = nums.length;
// 숫자와 그에 인덱스 저장
Map<Integer, Integer> numAndIdx = new HashMap<>();
for (int i = 0; i < length; i++) {
numAndIdx.put(nums[i], i);
}
// target과 차이나는 수가 존재하는지 확인
for (int i = 0; i < length; i++) {
int gap = target - nums[i];
// 같은수가 존재하는 경우도 조건문에서 계산
if (numAndIdx.containsKey(gap) && numAndIdx.get(gap) != i) {
return new int[] {i, numAndIdx.get(gap)};
}
}
return new int[] {-1, -1};
}
}
무차별 대입으로 풀었으나 map으로 할 수있을거 같이서 해봤습니다. 다만 같은 수가 존재할때 계산을 안해서 틀렸었습니다.
'Beakjoon&프로그래머스 > Java' 카테고리의 다른 글
| [LeetCode/Java] Is Subsequence (0) | 2025.12.31 |
|---|---|
| [LeetCode/Java] Move Zeroes (0) | 2025.12.31 |
| [LeetCode/Java] Valid Anagram (0) | 2025.12.31 |
| [LeetCode/Java] Contains Duplicate (0) | 2025.12.31 |
| [백준/Java] 32400번 다트판 (0) | 2025.12.31 |