๋ฐฑ์ค 14225 ๋ถ๋ถ์์ด์ ํฉ ํ์ด์ฌ
2023. 2. 25. 01:37ใ๐ฑ Algorithm
์ฒ์ ํผ ์ฝ๋
from itertools import combinations
N = int(input())
arr = list(map(int, input().split()))
max_value = sum(arr)
num_set = set()
for n in range(1, N+1):
for c in combinations(arr, n):
num_set.add(sum(c))
i = 1
while True:
if i not in num_set:
print(i)
exit()
i += 1
๋ธ๋ฃจํธํฌ์คํฑ ํ๊ฒ ํ์ด์ ๊ต์ฅํ ์ง์ ๋ถํ๋ค. ๋ด๊ฐ ๋ฉด์ ๊ด์ด๋ฉด ์ด๋ ๊ฒ ํผ ์ฌ๋ ์๋ฝ์ ๊ฒ ๊ฐ์์ ๋ค๋ฅธ ๋ฐฉ๋ฒ์ผ๋ก ํ์ด๋ดค๋ค.
๋ค์ ํผ ์ฝ๋
N = int(input())
arr = sorted(list(map(int, input().split())))
answer = 0
for i in arr:
if answer + 1 < i:
break
answer += i
print(answer + 1)
์ ๋จธ์ทจ better
1. ์ฐ์ ์ ๋ ฅ๋ฐ์ ์์ด์ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌ
2. ์ ๋ ฌ๋ ์๋ฅผ ์ํ
3. answer + 1 ์ด ์ํํ๋ ๊ฐ ๋ณด๋ค ์๋ค๋ ๊ฑด, answer + 1 ์ด ๋ต์ด๋ผ๋ ์๋ฏธ.
4. ๊ทธ๋ ์ง ์์ ๊ฒฝ์ฐ์ answer ์ ํ์ฌ ์ํ์ค์ธ ๊ฐ i ๋ฅผ ๋ํ๋ค. ์ด๋ ํ์ฌ i ๊ฐ ๋ณด๋ค๋ ํฐ ์๊ฐ ์ ๋ต์ด ๋ ๊ฒ์ด๋ ์๋ฏธ.
5. for ๋ฌธ์ ๋น ์ ธ๋์ฌ ๋์ answer + 1 ๊ฐ์ด ๋ต์ด ๋๋ค.
'๐ฑ Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ฐฑ์ค 2002 ์ถ์ ํ์ด์ฌ (0) | 2023.03.01 |
---|---|
ํ๋ก๊ทธ๋๋จธ์ค [lv2] ๋ชจ์์ฌ์ ํ์ด์ฌ (0) | 2021.10.07 |
ํ๋ก๊ทธ๋๋จธ์ค [lv3] floodfill ํ์ด์ฌ (0) | 2021.09.01 |
ํ๋ก๊ทธ๋๋จธ์ค [lv2] ์ฟผ๋์์ถ ํ ๊ฐ์ ์ธ๊ธฐ ํ์ด์ฌ (0) | 2021.08.31 |
ํ๋ก๊ทธ๋๋จธ์ค [lv2] ๋ฐฉ๋ฌธ๊ธธ์ด ํ์ด์ฌ (0) | 2021.08.29 |