일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- MVVM
- Swift
- SwiftUI
- flutter #state # stateful #stateless
- IOS
- ImageSlider
- CS193p
- process
- UserDefault
- 스위프트
- 새싹후기
- xcode
- xml
- 오늘의 색상
- 스터디
- Masil
- flutter
- 프로그래머스
- 조건문
- 백준
- UIKit
- 프로젝트회고
- 알고리즘
- colorofdays
- stanford
- WidgetTree
- 청년취업사관학교후기
- GIT
- 코딩테스트
- collectionView
Archives
- Today
- Total
개발을 시작하는 이야기
[LeetCode] Two Sum 본문
Swift Study 이주의 문제 4
Given an array of integers nums and an integer target, return indices of the two numbers such that they add up to target.
You may assume that each input would have exactly one solution, and you may not use the same element twice.
You can return the answer in any order.
Example 1:
Input: nums = [2,7,11,15], target = 9
Output: [0,1]
Explanation: Because nums[0] + nums[1] == 9, we return [0, 1].
Example 2:
Input: nums = [3,2,4], target = 6
Output: [1,2]
Example 3:
Input: nums = [3,3], target = 6
Output: [0,1]
Constraints:
- 2 <= nums.length <= 104
- -109 <= nums[i] <= 109
- -109 <= target <= 109
- Only one valid answer exists.
Follow-up: Can you come up with an algorithm that is less than O(n2) time complexity?
문제를 처음 보고 이걸 어케 해야하나 싶었는데
target에서 nums[i]를 빼고 남은 값이 있는지 확인해서 dict에 넣어주는 방식으로 해결함.
class Solution {
func twoSum(_ nums: [Int], _ target: Int) -> [Int] {
var dict = [Int: Int]()
for i in 0..<nums.count {
let value = nums[i]
let remainder = target - value
if let solutionIndex = dict[remainder] {
return [solutionIndex, i]
}
dict[value] = i
}
return [0, 0]
}
}
Runtime: 74 ms, faster than 46.28% of Swift online submissions for Two Sum.
Memory Usage: 14.5 MB, less than 51.93% of Swift online submissions for Two Sum.
'개발 이야기 > Algorithm Study' 카테고리의 다른 글
[BaekJoon] 팩토리얼 (0) | 2022.06.05 |
---|---|
[BaekJoon] 회의실 배정 (0) | 2022.06.02 |
[프로그래머스] 두 정수 사이의 합 (0) | 2022.06.02 |
[BaekJoon] 주사위 세개 (0) | 2022.06.02 |
[BaekJoon] 알람 시계 (0) | 2022.06.02 |