【白俊】109991047-Python 3
10989.数列3
https://www.acmicpc.net/problem/10989
私の答え-成功
numsのキーでソートし、数量で印刷します.
他人の解答
最初からnumsの長さを10001に設定
インデックスを数値で表し、配列の値を数値で表し、入力したすべての数値を数値で表します.
すべての10001個の数字を表示し、数量で印刷します.
ソートなしで使用可能!
コイン枚
https://www.acmicpc.net/problem/11047
私の答え-成功
硬貨[i]がKより小さい瞬間の硬貨[i]をKからできるだけ多くの硬貨を減算する
=> K//coins[i]
(繰り返し文から直接削除するとタイムアウト)
https://www.acmicpc.net/problem/10989
私の答え-成功
from sys import stdin
import collections
N = int(stdin.readline())
nums = collections.defaultdict(int)
for i in range(N):
n = int(stdin.readline())
nums[n] += 1
nums = sorted(nums.items())
for k, v in nums:
for _ in range(v):
print(k)
numsという名前のディックシーケンスを使用して入力した数値の数を格納numsのキーでソートし、数量で印刷します.
他人の解答
from sys import stdin
N = int(stdin.readline())
nums = [0]*10001
for i in range(N):
n = int(stdin.readline())
nums[n] = nums[n] + 1
for i in range(10001):
for j in range(nums[i]):
print(i)
Nの範囲は10000以下の自然数である.最初からnumsの長さを10001に設定
インデックスを数値で表し、配列の値を数値で表し、入力したすべての数値を数値で表します.
すべての10001個の数字を表示し、数量で印刷します.
ソートなしで使用可能!
コイン枚
https://www.acmicpc.net/problem/11047
私の答え-成功
from sys import stdin
N, K = map(int, stdin.readline().split())
coins = []
ans = 0
for _ in range(N):
c = int(stdin.readline())
coins.append(c)
for i in range(N-1, -1, -1):
if coins[i] <= K:
ans += K // coins[i]
K = K % coins[i]
print(ans)
コインはすでに並べられていて、大きな値からKを減算するために、ドアを逆順に回転させます硬貨[i]がKより小さい瞬間の硬貨[i]をKからできるだけ多くの硬貨を減算する
=> K//coins[i]
(繰り返し文から直接削除するとタイムアウト)
Reference
この問題について(【白俊】109991047-Python 3), 我々は、より多くの情報をここで見つけました https://velog.io/@jsh5408/백준-10989-11047-Python3テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol