[珂太]救命ボート
2154 ワード
質問する
の入力と出力を書いて条件を見ました. はpeopleとlimit、数値配列と数値として入力されます. の出力は最も少ない救命ボートの人数です. 条件:最大2人乗り、最低1人式救命ボート.座れないことはないそうです. 最初はソートしたくないので、探してみたいです.ソートを行うと、startインデックスとendインデックスで論理をより簡単に実現できるようです. 並べ替えがなければ?バブルソートのようにアレイ全体を検査し続けるべきです.あまり小さく並んでいないので、一列に並んだほうがいいです. 人の並びを並べ替えた後、一番前と一番後ろの値を確認し、2人が救命ボートに乗れる数を探します. 3.私が解いた答え
を過度に減らすよりも、変数を適切に使用するほうが読みやすいのではないでしょうか.
1.どのように接近するか
2.私が作成したコードの説明
3.私が解いた答え def solution(people, limit):
answer = 0
# 먼저 people을 오름차순으로 정렬한다
people.sort();
# 초기값 설정.
start = 0;
end = len(people) - 1
pair_count = 0;
while(True):
if start >= end:
break;
weight = people[start] + people[end]
if weight <= limit:
pair_count+=1
start+=1
end-=1
else:
end-=1
answer = len(people) - (pair_count*2) + pair_count
return answer
4.他人を説明する def solution2(people, limit) :
answer = 0
people.sort()
a = 0
b = len(people) - 1
while a < b :
if people[b] + people[a] <= limit :
a += 1
answer += 1
b -= 1
return len(people) - answer
5.修正した草 def solution3(people, limit):
answer = 0
people.sort();
start = 0;
end = len(people) - 1
pair_count = 0;
while(start < end):
if people[start] + people[end] <= limit:
pair_count+=1
start+=1
end-=1
answer = len(people) - pair_count
return answer
6.感じ:
1)全く同じ論理であるが,コードをどれだけ減らすことができるか,
2)変数名ははっきり言って、韓私はもっとよく見えますが、数行もなく、意味があるかもしれませんが、これは習慣的な方法だと思います.
7.改善点:
1)無限ループを回避するのはよいが,もちろん割り込みを最初の条件文として書くことができる.
2)不要な変数(重み)の制御
3)同じ繰り返しであれば、それを外に出して1行に短縮し、end-=1
8.称賛に値するところ?:
def solution(people, limit):
answer = 0
# 먼저 people을 오름차순으로 정렬한다
people.sort();
# 초기값 설정.
start = 0;
end = len(people) - 1
pair_count = 0;
while(True):
if start >= end:
break;
weight = people[start] + people[end]
if weight <= limit:
pair_count+=1
start+=1
end-=1
else:
end-=1
answer = len(people) - (pair_count*2) + pair_count
return answer
def solution2(people, limit) :
answer = 0
people.sort()
a = 0
b = len(people) - 1
while a < b :
if people[b] + people[a] <= limit :
a += 1
answer += 1
b -= 1
return len(people) - answer
5.修正した草 def solution3(people, limit):
answer = 0
people.sort();
start = 0;
end = len(people) - 1
pair_count = 0;
while(start < end):
if people[start] + people[end] <= limit:
pair_count+=1
start+=1
end-=1
answer = len(people) - pair_count
return answer
6.感じ:
1)全く同じ論理であるが,コードをどれだけ減らすことができるか,
2)変数名ははっきり言って、韓私はもっとよく見えますが、数行もなく、意味があるかもしれませんが、これは習慣的な方法だと思います.
7.改善点:
1)無限ループを回避するのはよいが,もちろん割り込みを最初の条件文として書くことができる.
2)不要な変数(重み)の制御
3)同じ繰り返しであれば、それを外に出して1行に短縮し、end-=1
8.称賛に値するところ?:
def solution3(people, limit):
answer = 0
people.sort();
start = 0;
end = len(people) - 1
pair_count = 0;
while(start < end):
if people[start] + people[end] <= limit:
pair_count+=1
start+=1
end-=1
answer = len(people) - pair_count
return answer
1)全く同じ論理であるが,コードをどれだけ減らすことができるか,
2)変数名ははっきり言って、韓私はもっとよく見えますが、数行もなく、意味があるかもしれませんが、これは習慣的な方法だと思います.
7.改善点:
1)無限ループを回避するのはよいが,もちろん割り込みを最初の条件文として書くことができる.
2)不要な変数(重み)の制御
3)同じ繰り返しであれば、それを外に出して1行に短縮し、end-=1
8.称賛に値するところ?:
Reference
この問題について([珂太]救命ボート), 我々は、より多くの情報をここで見つけました https://velog.io/@ljh95/코테-구명보트テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol