반응형
Notice
Recent Posts
Recent Comments
- Today
- Total
작심삼일
[LeetCode] 1679 | Max Number of K-Sum Pairs | Python 본문
728x90
반응형
문제 링크: https://leetcode.com/problems/max-number-of-k-sum-pairs/
문제
You are given an integer array nums and an integer k.
In one operation, you can pick two numbers from the array whose sum equals k and remove them from the array.
Return the maximum number of operations you can perform on the array.
조건
- 1 <= nums.length <= $10^5$
- 1 <= nums[i] <= $10^9$
- 1 <= k <= $10^9$
내 풀이
nums의 원소들을 센 count라는 dictionary를 만든다.
k가 짝수일 때는 한 값으로 k를 만들어야 하므로(ex. k=6, count[3]=2 → ans += 1) 그 절반만 더한다.
nums 안의 원소 num과 k-num이 모두 count에 존재할 때, 그 수가 더 작은 것만큼 ans에 더한다.
코드
class Solution:
def maxOperations(self, nums: List[int], k: int) -> int:
count = Counter(nums)
ans = 0
if k%2 == 0 and k//2 in count:
ans += int(count[k//2]/2)
count[k//2] = 0
for num in count:
if k-num in count:
ans += min(count[num], count[k-num])
count[num], count[k-num] = 0, 0
return ans
728x90
반응형
'스터디 > 코테' 카테고리의 다른 글
[LeetCode] 17 | Letter Combinations of a Phone Number | Python (0) | 2022.05.09 |
---|---|
[LeetCode] 1209 | Remove All Adjacent Duplicates in String II | Python (0) | 2022.05.06 |
[LeetCode] 581 | Shortest Unsorted Continuous Subarray | Python (0) | 2022.05.03 |
[LeetCode] 905 | Sort Array By Parity | Python (0) | 2022.05.02 |
[LeetCode] 1631 | Path With Minimum Effort | Python (0) | 2022.04.28 |
Comments