白駿13458.試験監督(Python/Python)(演算子)
🔎 1080番です.質問の表示
https://www.acmicpc.net/problem/13458
💡 問題を解く前に
問題を解く方法は考えやすい.
試験場ごとに最低1名、最大1名が必要なので、総監督で監視できる生徒数を除く他の生徒数を算出すればよい.
ただ最初は、勝手に状況の数を書くためにif文で4つくらいに分けて、時間短縮のために少しずつ減っていくので悩んでいました.
📋 コードの表示
1.解題の考え方
総授業ミスのNは入力以外は不要であるため,int変換は省略した.
int(stdin.readline()ではなくstdin.readline()を使用すると、28ミリ秒短縮されます.
2-1)if:ディレクター(B)が監視できる人数が1つの教室で指定された学生数より多い場合(A[i])総監督官は監視可能人数(B)を外し、回数(cnt)検査+1 を行う.残りの生徒数(A[i]-=B)が副監督員が監視できる人数の倍数であれば、シェアに応じて回数(cnt)を加算すればよい. 残りのがあればシェア分に+1を付けて終了!
2-2)else:総監督(B)が監視できる人数が1つの教室に割り当てられた学生数以下である場合(A[i])は1人の総監督官しか必要ないので、回数+1しか必要ありません. 2.演算子
今回のコード作成では、単純な演算子のみを理解する必要があります.
(出典:https://includestdio.tistory.com/16)
(🔎 さらに勉強する必要がある場合は、上のリンクで!
https://www.acmicpc.net/problem/13458
💡 問題を解く前に
問題を解く方法は考えやすい.
試験場ごとに最低1名、最大1名が必要なので、総監督で監視できる生徒数を除く他の生徒数を算出すればよい.
ただ最初は、勝手に状況の数を書くためにif文で4つくらいに分けて、時間短縮のために少しずつ減っていくので悩んでいました.
📋 コードの表示
from sys import stdin
N = stdin.readline()
A = list(map(int, stdin.readline().split()))
B, C = map(int, stdin.readline().split())
cnt = 0
for i in range(len(A)):
if A[i] >= B:
A[i] -= B
cnt += 1
if A[i] % C == 0:
cnt += (A[i] // C)
else:
cnt += (A[i] // C) + 1
else:
cnt += 1
print(cnt)
🥕 コード解釈と関連概念1.解題の考え方
from sys import stdin
N = stdin.readline()
A = list(map(int, stdin.readline().split()))
B, C = map(int, stdin.readline().split())
cnt = 0
>変数入力を受け入れる区間総授業ミスのNは入力以外は不要であるため,int変換は省略した.
int(stdin.readline()ではなくstdin.readline()を使用すると、28ミリ秒短縮されます.
for i in range(len(A)):
if A[i] >= B:
A[i] -= B
cnt += 1
if A[i] % C == 0:
cnt += (A[i] // C)
else:
cnt += (A[i] // C) + 1
else:
cnt += 1
1)for:授業ミス(len(A))のように、ドアを回す.2-1)if:ディレクター(B)が監視できる人数が1つの教室で指定された学生数より多い場合(A[i])
今回のコード作成では、単純な演算子のみを理解する必要があります.
(出典:https://includestdio.tistory.com/16)
(🔎 さらに勉強する必要がある場合は、上のリンクで!
Reference
この問題について(白駿13458.試験監督(Python/Python)(演算子)), 我々は、より多くの情報をここで見つけました https://velog.io/@dding_ji/baekjoon13458テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol