swift 리트코드 문제풀이 - leetcode 1 두 수의합
leetcode 1. Two Sum
문제
덧셈하여 타겟을 만들 수 있는 배열의 두 숫자 인덱스를 리턴하라.
예제 1:
Input: nums = [2,7,11,15], target = 9
Output: [0,1]
예제 2:
Input: nums = [3,2,4], target = 6
Output: [1,2]
예제 3:
Input: nums = [3,3], target = 6
Output: [0,1]
이번 문제의 난이도는 어려운 편은 아닌듯.
주어진 파리미터는 두개임.
배열 = [2,7,11,15] 과 타겟숫자 9.
배열안의 숫자 2개를 더해서 9가되는 숫자 두개를 배열로 반환하면 됨.
바로 생각난 아이디어는 기준 숫자를 하나 정하고, 기준 숫자 다음의 숫자를 차례대로 더해서 타겟과 같은지 체크하는것임
예를들어 배열의 첫번째 숫자 2 부터, 반복문을 돌면서 2+7, 2+11, 2+15 를 더해서 타겟 숫자와 확인하고 2가 끝나면 그 다음 숫자 7을 기준 숫자로 정해서 7+11, 7+15 이런식으로 체크를 하는 로직을 떠올려봤다.
타겟 숫자와 비교해서 같으면 해당 두 숫자를 배열에 넣어서 리턴해주면 끝.
let twoSumArray = [2,7,11,15]
let twoSumTarget = 9
func twoSum(_ nums: [Int], _ target: Int) -> [Int] {
//기준 숫자 인덱스
var targetIndex = 0
//비교 숫자 인덱스
var anotherNumIndex = 0
let arrayLength = nums.count
var returnResult: Array<Int> = []
for (idx, num) in nums.enumerated() {
targetIndex = idx
anotherNumIndex = targetIndex+1
print("기준숫자 idx : \(idx) , 기준숫자 : \(num)")
print("")
while(anotherNumIndex <= arrayLength-1){
print("더할 숫자 : \(nums[anotherNumIndex])")
//두수를 더해서 target 숫자와 같은지 체크
if (nums[targetIndex] + nums[anotherNumIndex]) == target{
print("찾았다.")
returnResult.append(targetIndex)
returnResult.append(anotherNumIndex)
return returnResult
}
anotherNumIndex+=1
}
print("")
}
return returnResult
}
결과는 통과!
https://leetcode.com/problems/two-sum/
'자료구조&알고리즘 > leetcode 풀이' 카테고리의 다른 글
swift 리트코드 문제풀이 - leetcode 238 자신을 제외한 배열의 곱 (0) | 2022.07.27 |
---|---|
swift 리트코드 문제풀이 - leetcode 42 빗물 트래핑 (0) | 2022.07.26 |
swift 리트코드 문제풀이 - leetcode 49 그룹 애너그램 (0) | 2022.07.24 |
swift 리트코드 문제풀이 - leetcode 819 가장 흔한 단어 (0) | 2022.07.23 |
swift 리트코드 문제풀이 - leetcode 937 로그 파일 재정렬 (0) | 2022.07.22 |