티스토리 뷰

728x90

https://leetcode.com/problems/two-sum/

 

정수의 배열로 이루어진 nums로 각각 더해서 target의 값과 같으면 해당 index들을 리턴

 

 

 

내 풀이

class Solution {
    func twoSum(_ nums: [Int], _ target: Int) -> [Int] {
        var result: [Int] = []
        
        for (idx, num) in nums.enumerated() {
            for idx2 in (idx + 1) ..< nums.count {
                if num + nums[idx2] == target {
                    return [idx, idx2]
                }
            }
        }
        return result
    }
}

Solution().twoSum([2, 7, 11, 15], 9)

 

  • enumerated()를 이용해 index를 구함
  • 두번째 반복문에서 nums의 index + 1 ~ nums의 갯수 만큼 반복 하게 함
    • 예)
    • 첫번째 반복 [2, 7], [2, 11], [2, 15]
    • 두번째 반복 [7, 11], [7, 15]
    • 세번째 반복 [11, 15]
  • 각자 반복될때마다 요소 + 그다음 요소를 더해 target의 값과 같으면 해당 index 리턴
  • result는 반복문 내 조건문에 해당하지 않을시 빈 배열 리턴

 

 

배운것

enumerated()

 

n은 index (0부터 시작),

x는 배열의 요소 반환합니다.

 

예제

for (n, x) in "Swift".enumerated() {
    print("\(n): '\(x)'")
}
// Prints "0: 'S'"
// Prints "1: 'w'"
// Prints "2: 'i'"
// Prints "3: 'f'"
// Prints "4: 't'"
728x90