December 06, 2024
์ด ๋ฌธ์ ๋ ๋๊ฐ์ ์ ์ n๊ณผ maxSum, ๊ทธ๋ฆฌ๊ณ banned ๋ฐฐ์ด์ด ์ฃผ์ด์ง๋ค. ์ด๋, ๋ค์ ์กฐ๊ฑด์ ๋ง์กฑํ๋ ์ต๋์ ์ ์ ๋ฐฐ์ด ๊ธธ์ด๋ฅผ ๋ฐํํ๋ ๋ฌธ์ ์ด๋ค.
class Solution:
def maxCount(self, banned: List[int], n: int, maxSum: int) -> int:
cur_sum = 0
counter = 0
i = 1
while 1 <= i <= n:
if cur_sum + i < maxSum and i not in banned:
counter += 1
cur_sum += i
i += 1
return counter
204/207๊ฐ ์ผ์ด์ค๋ฅผ ๋ง์ท๋ค. ๋ณด๋๊น <= maxSum์ ํ์์ด์ผ ํ๋ค. ์ด๋ ๊ฒ ๊ณ ์น๋๊น ํด๊ฒฐ๋๋ค.
cur_sum = 0
counter = 0
banned = set(banned)
for i in range(1, n+1):
if cur_sum + i <= maxSum and i not in banned:
counter += 1
cur_sum += i
if cur_sum >= maxSum:
break
return counter
Constraints:
1 <= banned.length <= 10^4
1 <= banned[i], n <= 10^4
1 <= maxSum <= 10^9