[BOJ/Python]1092号船
この問題は、クレーンの重量制限と箱の重量を降順に並べ替え、最前面からクレーンと箱を検査し、重い箱から重い箱までのクレーンを手配し、クレーンに箱を持ち上げるたびに時間を増やすことで解決される. nと入力します. クレーンの重量制限を受けるクレーンの配列を発表し、入力を受け入れる. mと入力します. 箱の重さを発表し、入力を受けた箱が並ぶ. クレーンと箱体を降順に並べます. が移動する箱の数を計算する変数cntを0と定義する. ボックス移動時間を格納する変数時間を0と定義する. ボックスの移動を表示するm個のFalseからなる配列chkを定義する. ボックスのインデックスを容易に使用するために、n個の0からなる配列tmpが定義されている. クレーン[0]がbox[0]より小さい場合、-1を出力してプログラムを終了する. cntがboxアレイの長さより小さい場合、ドアを回転させる.
->n対iを繰り返すfor文.
-->tmp[i]box配列の長さ未満でwhile文をループします.
----->chk[tmp[i]がfalseであり、クレーン[i]がbox[tmp[i]以上である場合(現在のボックスが移動せず、現在のクレーンに移動可能である場合)
------>chk[tmp[i]がTrueに更新され、tmp[i]が1増加し、cntが1増加し、while文が閉じられます.
-->tmp[i]を1つ増やします.
->時間が1つ増える. 出力時間. Code
->n対iを繰り返すfor文.
-->tmp[i]box配列の長さ未満でwhile文をループします.
----->chk[tmp[i]がfalseであり、クレーン[i]がbox[tmp[i]以上である場合(現在のボックスが移動せず、現在のクレーンに移動可能である場合)
------>chk[tmp[i]がTrueに更新され、tmp[i]が1増加し、cntが1増加し、while文が閉じられます.
-->tmp[i]を1つ増やします.
->時間が1つ増える.
Code n=int(input())
crane=list(map(int, input().split()))
m=int(input())
box=list(map(int, input().split()))
crane.sort(reverse=True)
box.sort(reverse=True)
cnt=0
time=0
chk=[False]*m
tmp=[0]*n
if crane[0]<box[0]:
print(-1)
quit()
while cnt<len(box):
for i in range(n):
while tmp[i]<len(box):
if chk[tmp[i]]==False and crane[i]>=box[tmp[i]]:
chk[tmp[i]]=True
tmp[i]+=1
cnt+=1
break
tmp[i]+=1
time+=1
print(time)
Reference
この問題について([BOJ/Python]1092号船), 我々は、より多くの情報をここで見つけました
https://velog.io/@xx0hn/BOJ-Python-1092번-배
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
n=int(input())
crane=list(map(int, input().split()))
m=int(input())
box=list(map(int, input().split()))
crane.sort(reverse=True)
box.sort(reverse=True)
cnt=0
time=0
chk=[False]*m
tmp=[0]*n
if crane[0]<box[0]:
print(-1)
quit()
while cnt<len(box):
for i in range(n):
while tmp[i]<len(box):
if chk[tmp[i]]==False and crane[i]>=box[tmp[i]]:
chk[tmp[i]]=True
tmp[i]+=1
cnt+=1
break
tmp[i]+=1
time+=1
print(time)
Reference
この問題について([BOJ/Python]1092号船), 我々は、より多くの情報をここで見つけました https://velog.io/@xx0hn/BOJ-Python-1092번-배テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol