안녕하세요. 책의 문제풀이 5 에서 이 문제가 인덱스 구해야하는거라 투포인터 이용하면 안된다고 하셨는데요.
sorted 를 써서 따로 배열 만드는 방식으로해서 투포인터로 문제를 풀었습니다. leetcode submit에서 통과는 했는데 이렇게 풀어도 되는건지 궁금합니다.
quo, rem = divmod( target, 2) # fast check for half the target
if rem == 0 :
if nums.count(quo) > 1 : #half 값이 이미 두개 이상 있음. 이걸로 return하면 끝.
half_val_indices = [index for index, x in enumerate(nums) if x == quo]
return half_val_indices[0], half_val_indices[1]
else: pass
sorted_list = sorted(nums)
start = 0
end = len(nums) - 1
while start < end :
if sorted_list[start] + sorted_list[end] == target :
break
elif sorted_list[start] + sorted_list[end] > target : # now : larger than target. so get smaller.
end -= 1
else : # < target
start += 1
return [nums.index(sorted_list[start]), nums.index(sorted_list[end])]
안녕하세요. 책의 문제풀이 5 에서 이 문제가 인덱스 구해야하는거라 투포인터 이용하면 안된다고 하셨는데요. sorted 를 써서 따로 배열 만드는 방식으로해서 투포인터로 문제를 풀었습니다. leetcode submit에서 통과는 했는데 이렇게 풀어도 되는건지 궁금합니다.