Algorithm Problem/Python
[python] ๋ฐฑ์ค - 1182. ๋ถ๋ถ์์ด์ ํฉ
deo2kim
2020. 10. 5. 08:38
๋ฐ์ํ
๐ค๋ฌธ์ ํด๊ฒฐ
-
S2 | ์์ ํ์(๋ฐฑํธ๋ํน)
๋ฌธ์ ๋ฅผ ์ ์ดํดํ์ง ๋ชปํด์ ๋ง์ด ํท๊ฐ๋ ธ๋ค.
๊ทธ๋ฅ ์ฝ๊ฒ ์ค๋ช ํด์ ์ฃผ์ด์ง ์ซ์๋ค ์ค n๊ฐ๋ฅผ ๋ฝ์์ ๋ํ ๊ฐ์ด S์ ๊ฐ์ ์กฐํฉ์ด ๋ช๊ฐ์ธ์ง ๊ตฌํ๋ผ๋ ๋ง
ํ์ด์ฌ์์๋ ์ฝ๊ฒ ์ฝค๋น๋ค์ด์ ์ ์ฐ๋ฉด ๋๋ค.
๋ฌธ์ ์ ํ์ ๋ฐฑํธ๋ํน์ด ์์ผ๋ฏ๋ก ๋ฐฑํธ๋ํน์ ์ฐ์ตํ๊ณ ์ถ์ผ๋ฉด ๋ฐฑํธ๋ํน์ ์จ๋ ์ข๋ค.
๐ป์์ค ์ฝ๋
from itertools import combinations
N, S = map(int, input().split())
numbers = list(map(int, input().split()))
answer = 0
for i in range(1, N + 1):
for combi in combinations(numbers, i):
# print(combi)
if sum(combi) == S:
answer += 1
print(answer)
๐๋ฌธ์ ํ์ธ
์ถ์ฒ: BACKJOON ONLINE JUDGE
๋งํฌ: https://www.acmicpc.net/problem/1182
1182๋ฒ: ๋ถ๋ถ์์ด์ ํฉ
์ฒซ์งธ ์ค์ ์ ์์ ๊ฐ์๋ฅผ ๋ํ๋ด๋ N๊ณผ ์ ์ S๊ฐ ์ฃผ์ด์ง๋ค. (1 ≤ N ≤ 20, |S| ≤ 1,000,000) ๋์งธ ์ค์ N๊ฐ์ ์ ์๊ฐ ๋น ์นธ์ ์ฌ์ด์ ๋๊ณ ์ฃผ์ด์ง๋ค. ์ฃผ์ด์ง๋ ์ ์์ ์ ๋๊ฐ์ 100,000์ ๋์ง ์๋๋ค.
www.acmicpc.net
๋ฐ์ํ