[#1182]部分数列の和
❓ Question
📖 Before Start
組み合わせと並べ替え、この2人は本当に連続して現れた友达です.
今高校で数列を習わないというニュースを聞いて、筆者は本当に大きな衝撃に陥った.
「じゃあ、数列を全く知らない人はどうやってこの問題を解くの?」私にしばらく考えさせた.
✒️ Design Algorithm
この問題は比較的容易な類に属する.これは無条件の組み合わせの問題です!
プログラミングでソートやコンビネーションに出会えるとは思わなかったが、人生はどうなるのか分からなかった.
幸いなことに、筆者はこの問題に直面する前に、
itertools
ライブラリの存在を他の場所で知っていた.私が自分でソートと組み合わせを実現しなくても、ライブラリで実現することができます.Pythonは明らかに詐欺です.
以下は筆者が問題を解く前に作成したアルゴリズム設計である.
最初の行は、整数の個数Nと、標準的な整数Sとして与えられる.
2行目にはN個の整数がスペースを隔てて連続的に与えられる.
1에서 N-1개
の組合せの和を求める.S와 같다면
の場合、数を表す変数に1を加えます.💻 Making Own Code
import sys
import itertools as itr
n, s = map(int, sys.stdin.readline().split())
data, result = list(map(int, sys.stdin.readline().split())), 0
for i in range(1, n+1):
for c in itr.combinations(data, i):
if sum(c) == s:
result += 1
print(result)
ソートと組合せはitertoolsライブラリを使用するのが最善の解決策だと考えています.この問題も
itertools
のcombination(data, number)
を用いて解題に成功した.しかし、筆者は一部の数列に自分も含まれていることを知らずに提出して八爪魚を一口食べた.
皆さんも筆者の場合のように、間違いなく問題をよく解いてください.
Reference
この問題について([#1182]部分数列の和), 我々は、より多くの情報をここで見つけました https://velog.io/@rookieand/s0uci8bpテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol