白駿2331.重複数列-問題解決(pop)(Python/Python)
🔎 2331番です.質問の表示
https://www.acmicpc.net/problem/2331
💡 問題を解く前に
思ったより構造が簡単でした.
「規則に従って数値を追加し、重複する数値が発生した場合は、すぐに計算を停止します!」
📋 コードの表示
ルールに従って数値を計算するたびに、checkという名前のリストに新しい数値が追加されます.
for文は新数(new)を計算する区間である
そして、新しい数字(new)がcheckというリストにある場合、
たとえば、[1,5,3,4]を5にして追加しようとした場合
checkリストでpopから5.
そして残りのcheckリストの長さを出力すればいいです.
https://www.acmicpc.net/problem/2331
💡 問題を解く前に
思ったより構造が簡単でした.
「規則に従って数値を追加し、重複する数値が発生した場合は、すぐに計算を停止します!」
📋 コードの表示
from sys import stdin
A, P = map(int, stdin.readline().split())
check = [A]
while True:
new = 0
for i in (str(check[-1])):
new += int(i) ** P
if new in check:
while True:
if new == check.pop():
print(len(check))
exit()
else:
check.append(new)
🥕 コード解釈と関連概念ルールに従って数値を計算するたびに、checkという名前のリストに新しい数値が追加されます.
for文は新数(new)を計算する区間である
そして、新しい数字(new)がcheckというリストにある場合、
たとえば、[1,5,3,4]を5にして追加しようとした場合
checkリストでpopから5.
そして残りのcheckリストの長さを出力すればいいです.
Reference
この問題について(白駿2331.重複数列-問題解決(pop)(Python/Python)), 我々は、より多くの情報をここで見つけました https://velog.io/@dding_ji/baekjoon-2331テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol