문제
https://leetcode.com/problems/two-sum/submissions/1498086275/
입력
두개의 값을 더해서 target을 만들 수 있는가. 방법은 단 한개만 존재
- 2 <= nums.length <= 10^4
- 10^9 <= nums[i] <= 10^9
- 10^9 <= target <= 10^9
결과
ans: [Int] = 두개의 값의 인덱스를 배열에 담아 리턴
해석
현재 키와 (target - 현재 키)의 딕셔너리 존재 여부를 파악한다.
코드
class Solution {
func twoSum(_ nums: [Int], _ target: Int) -> [Int] {
var hash: [Int: Int] = [:] // key: element, value: number
var ans: [Int] = []
for (index, num) in nums.enumerated() {
let pair = target - num
if let pairIndex = hash[pair] {
ans.append(pairIndex)
ans.append(index)
return ans
}
hash[num] = index
}
return ans
}
}
'PS > LeetCode' 카테고리의 다른 글
Product of Array Except Self (0) | 2025.01.05 |
---|---|
Best Time to Buy and Sell Stock (0) | 2025.01.05 |
[LeetCode] 3. Longest Substring Without Repeating Characters (0) | 2024.10.24 |
[LeetCode] 647. Palindromic Substrings (0) | 2024.10.15 |
[LeetCode] 459. Repeated Substring Pattern (0) | 2024.10.15 |