Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

파이썬에서 합이 k가 되는 목록에서 두 숫자를 찾는 프로그램

<시간/>

num이라는 숫자 목록이 있고 또 다른 숫자 k가 있다고 가정하면 목록에 있는 두 숫자의 합이 k인지 아니면 지금인지 확인해야 합니다. 동일한 요소를 두 번 사용해서는 안 됩니다. 그리고 숫자는 음수 또는 0일 수 있습니다.

따라서 입력이 nums =[45, 18, 9, 13, 12], k =31과 같으면 출력은 18 + 13 =31과 같이 True가 됩니다.

이 문제를 해결하기 위해 다음 단계를 따릅니다. −

  • temp_set:=새 세트
  • 숫자 단위의 각 숫자에 대해 다음을 수행합니다.
    • num이 temp_set에 있으면
      • 참 반환
    • temp_set에 (k-num) 추가
  • 거짓을 반환

이해를 돕기 위해 다음 구현을 살펴보겠습니다. −

예시

class Solution:
   def solve(self, nums, k):
      temp_set=set()
      for num in nums:
         if num in temp_set:
            return True
            temp_set.add(k-num)
      return False
ob = Solution()
nums = [45, 18, 9, 13, 12] k = 31 print(ob.solve(nums, k))

입력

[45, 18, 9, 13, 12], 31

출력

True