[アルゴリズム練習]-大数(python)

3352 ワード

1.問題リンク


[大数]-https://www.acmicpc.net/problem/17298

2.未解の考え


問題の難易度はそれほど高くなく、うまく解決できるようだ.

3.解答

import sys
t = int(sys.stdin.readline())
num = list(map(int, sys.stdin.readline().split()))

for i in range(0, t):
    cur = num.pop(0)
    for j in range(len(num)):
        if cur < num[j]:
            print(num[j])
            break
    else:
        print(-1)
入力した数字をリストに入れ、各数字を比較分析し、結果を導出するようにリストの長さを繰り返し、pop関数で数字を減算し、減算した数字を残りの数字と比較します.ずっとpop()を使っていたので、結局後ろの番号が落ちてしまったのでpop(0)に固定.(そうするかどうかはわかりませんが…)

4.説明しながら悩むところ


思ったより時間をかけて解いたのですが、繰り返している文が少し混ざっているようです.二重複文を書くときはどのように繰り返しているのか分からないようで、真ん中に中間の印刷を加えて、どのように繰り返しているのかを見て、ゆっくりと解けました.

5.解答後の感想


もっとしっかり基本を身につけて、問題に近づくことができればもっと楽になり、もっと勉強しなければならないと思います.