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) 추가
- num이 temp_set에 있으면
- 거짓을 반환
이해를 돕기 위해 다음 구현을 살펴보겠습니다. −
예시
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