728x90
<문제 링크>
https://leetcode.com/problems/two-sum-ii-input-array-is-sorted/
<문제 풀이>
- 효율적인 알고리즘을 위해 bisect 라이브러리를 사용
- 양수가 포함될 때와 음수(0 포함)만 있을 때 나눠서 코딩
<코드>
from bisect import bisect_right, bisect_left
class Solution:
def twoSum(self, numbers: List[int], target: int) -> List[int]:
index = bisect_right(numbers,target)
answer = []
for i in range(index):
if target - numbers[i] in numbers:
answer.append(i+1)
answer.append(bisect_right(numbers,target-numbers[i]))
if len(answer)==2:
break
if answer == []:
index = bisect_left(numbers,target)
for j in numbers[index:]:
if target - numbers[j] in numbers:
answer.append(j+1+index)
answer.append(numbers.index(target-numbers[i])+1+index)
return answer
<고쳐야 할 점>
- 다양한 케이스 테스트 생각해야 함
'두두의 알고리즘 > 문제' 카테고리의 다른 글
[기타] 릿코드 Easy 557 'Reverse Words in a String III' (Python) (0) | 2022.01.13 |
---|---|
[기타] 릿코드 Easy 344 'Reverse String' (Python) (0) | 2022.01.13 |
[정렬] 릿코드 Easy 283 'Move Zeroes' (Python) (0) | 2022.01.13 |
[정렬] 릿코드 Medium 189 'Rotate Array' (Python) (0) | 2022.01.12 |
[정렬] 릿코드 Easy 977 'Squares of a Sorted Array' (Python) (0) | 2022.01.12 |