2023. 2. 25. 01:37ใ๐ฑ Algorithm
14225๋ฒ: ๋ถ๋ถ์์ด์ ํฉ
์์ด S๊ฐ ์ฃผ์ด์ก์ ๋, ์์ด S์ ๋ถ๋ถ ์์ด์ ํฉ์ผ๋ก ๋์ฌ ์ ์๋ ๊ฐ์ฅ ์์ ์์ฐ์๋ฅผ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค. ์๋ฅผ ๋ค์ด, S = [5, 1, 2]์ธ ๊ฒฝ์ฐ์ 1, 2, 3(=1+2), 5, 6(=1+5), 7(=2+5), 8(=1+2+5)์ ๋ง๋ค
www.acmicpc.net
์ฒ์ ํผ ์ฝ๋
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 |