반응형
https://leetcode.com/problems/two-sum/
문제 (난이도 Easy)
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.
*해석 : 하나의 배열에서 두 수의 합이 target 값이 되는 수의 index를 배열로 return한다.
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]
풀이 방법
class Solution:
def twoSum(self, nums: List[int], target: int) -> List[int]:
answer = []
for i in range(0, len(nums) -1) :
for j in range(len(nums) -1, i, -1) :
if (nums[i] + nums[j] == target) :
answer.append(i)
answer.append(j)
break
if (len(answer) == 2) :
break
return answer
return 할 answer 배열을 선언 한 후, 이중 for 문을 돌려 하나는 처음부터 돌고 하나는 끝에서 부터 돈다. j는 i 번째 다음꺼 까지만 오고 같은 n 번째 수는 피해야 한다. j는 끝에서 부터 돌아야하므로 for문의 step에 -1을 넣어준다. i번째 수 + j번째 수 = target 값이 될때까지만 for문을 돌린다.
answer의 요소가 2개가 찼을 경우 for문에서 break로 끝낸다.
뭔가 많이 시도해 봤지만 처음에 한 게 가장 나았고, 같은 코드를 재제출 해도 결과가 다른 이유는 뭐지?????
반응형
댓글