알고리즘을 어떻게 공부해야할까 어느 사이트를 참고해야할까 엄청 고민하던 찰나에, 우연히 보게된 글에서 LeetCode로 공부하는게 좋다길래 참고하여 공부하려고 한다! Easy고 나발이고 x밥인 나는 이 사람 말대로 이것도 어려웠다ㅋㅎ,, 괜찮아.. 열심히 하면 늘겠지!
# 내 코드
class Solution:
def twoSum(self, nums: List[int], target: int) -> List[int]:
output = []
for i in range(len(nums)) :
target -= nums[i]
if target in nums[i+1:] :
output.append(i)
output.append(nums[i+1:].index(target)+i+1)
return output
target += nums[i]
return
메모리 사용량은 적지만 시간이 굉장히 오래걸리는 내 코드... Discussion에 올라와있는 코드들은 딕셔너리를 사용하여 효과적으로 속도를 향상시킬 수 있었다.
class Solution:
def twoSum(self, nums: List[int], target: int) -> List[int]:
dic = {}
for i, n in enumerate(nums):
if n in dic:
return [dic[n], i]
dic[target-n] = i
근데 또 Discussion에서 나온 의견으로는 nums = [11, 2, 2, 7, 11, 15] , target = 9 일 때, 정답은 [1,3]인데 위의 코드로 하면 [2,3]이 나오는 오류가 발생한다... 근데 내코드는 잘 됨 헤헷 속도를 잃고 정확성을 얻었다 암튼 코딩 하수인 나는 리스트도 enumerate가 된다는 새로운 사실을 알았으니 그것만으로도 만족 헤헷,,, 그리고 딕셔너리 사용이 속도면에서 효과적이라는 것을 알았으니 이것도 만족 헤헷...
'코딩 > 문제' 카테고리의 다른 글
문제13. Leetcode11) Container With Most Water (0) | 2020.12.03 |
---|---|
문제12. LeetCode2) Add Two Numbers (0) | 2020.11.26 |
문제10. (파이썬) 프렌즈 4블록 (0) | 2020.06.16 |
문제9. (파이썬) 비밀 지도 (0) | 2020.06.15 |
문제8. (파이썬) 자카드 유사도 알고리즘 (0) | 2020.06.11 |