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

 

๋ฐ˜์‘ํ˜•