LoginSignup
0
1

More than 3 years have passed since last update.

【paiza 演習問題】mod7占い (paizaランク S 相当)(タイムアウト)

Last updated at Posted at 2019-10-01

対象

これは paizaランク S 相当の練習問題としてここにあった問題の解答を記録するものであり、初心者向けです。(上級者の方のアドバイスは頂きたいです)

概要

入力値ケース9(大規模データ入力時)にてタイムアウトを吐かれたのでリファクタリングを行いたい。

コード

def solve():
    N = int(input())
    Deck = [int(input()) for _ in range(N)]
    Ans = 0
    for x in range(0,N-2):
        for y in range(x+1, N):
            for z in range(y+1, N):
                Sum_deck = Deck[x] + Deck[y] + Deck[z]
                if Sum_deck % 7 == 0:
                    Ans += 1
    print(Ans)


if __name__ == '__main__':
    solve()

原因?

逐一計算を行っているため、計算回数が膨らんでいる。
同じX,Y条件下では以前のように重複分の再利用をするべきか。

と思ったけど違うなこれ。全部のmod7を計算して、数学的な組み合わせで殴ったら終わるのでは?

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1