ν°μ€ν 리 λ·°
λ¬Έμ
λ¬Έμ νμ΄
μ΄ λ¬Έμ λ μ£Όμ΄μ§ μμ΄μ λΆλΆ ν©μ ꡬνμμ λ, ꡬν μ μλ μλ₯Ό λ°ννλ λ¬Έμ μ΄λ€. μμ μ λ ₯ 1μμ ꡬν μ μλ κ²½μ°μ μλ₯Ό νΈλ¦¬λ‘ λ²λλ€λ©΄ μμ κ·Έλ¦Όκ³Ό κ°λ€. μ¦ μ£Όμ΄μ§ μμ΄μ λͺ¨λ μ ννλ κ²½μ°μ λΆλΆμ μΌλ‘ μ ννμ§ μμ λμ λ°λΌ ν©μ ꡬνλ©΄ λλ κ²μ΄λ€.
μ΄λ₯Ό μ½λλ‘ κ΅¬ννλ€λ©΄ μ¬κ· νΈμΆμ μ΄μ©νλ©΄ μ½κ² ꡬν μ μλ€. μ½λλ₯Ό μμ±νκΈ° μν΄μλ λ€μκ³Ό κ°μ κ²½μ°μ μλ₯Ό μκ°νμ¬ κ΅¬ννλ©΄ λλ€.
- μ€κ°μ λ°μνλ κ°λ κΈ°λ‘νμ¬μΌ νκΈ°μ, μΈλ±μ€κ° Nμ μ΄λ£¨λ κ²½μ°λ§ κ°μ μ μ₯νμ§ μκ³ κ°μ§λ₯Ό λ»μ λλ§λ€ λΆλΆ ν©μ κΈ°λ‘νλ€.
- μ¬κ· νΈμΆμ ν λ, νμ¬ μΈλ±μ€μ κ°μ λ°μνλ κ²κ³Ό νμ§ μλ κ² 2κ°μ§λ‘ λλμ΄ μ¬κ· νΈμΆμ νλ€.
μ½λ
from sys import stdin
def dfs(idx, sum_num):
global answer
if idx == n:
return
answer.add(sum_num + s[idx])
dfs(idx + 1, sum_num + s[idx])
dfs(idx + 1, sum_num)
if __name__ == '__main__':
n = int(stdin.readline())
s = list(map(int, stdin.readline().split(' ')))
answer = set(s[:])
dfs(0, 0)
ret = 0
for num in range(max(answer)):
if num + 1 not in answer:
ret = num + 1
break
print(ret if ret else max(answer) + 1)
λΉ μ§ μλ₯Ό μ°ΎκΈ° μν΄μλ ꡬν κ°μμ maxκΉμ§μ μλ₯Ό μμ°¨μ μΌλ‘ νμνκ³ λκΉμ§ νμνμ¬λ μ°Ύμ§ λͺ»ν κ²½μ°λ max + 1 κ°μ λ°ννλλ‘ νμλ€.
'π¨βπ» μ½λ©ν μ€νΈ > λ°±μ€' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
λ°±μ€: 16948 λ°μ€ λμ΄νΈ (0) | 2020.08.02 |
---|---|
λ°±μ€: 9663 N-Queen (0) | 2020.08.01 |
λ°±μ€: 2250 νΈλ¦¬μ λμ΄μ λλΉ (0) | 2020.07.29 |
λ°±μ€: 1261 μκ³ μ€ν (0) | 2020.07.28 |
λ°±μ€: 11725 νΈλ¦¬μ λΆλͺ¨ μ°ΎκΈ° (0) | 2020.07.27 |