[WEEK02] DAY12 & TMI
今日の午前中は体の調子が悪くて、薬を探して解決して、少し疲れました.
基礎文法を昼間まで練習する
そして夕食を食べる前にアルゴリズムの解き方を始めます.
今週の質問リストの始まりは
https://www.acmicpc.net/problem/1920
https://www.acmicpc.net/problem/2805
耳でもほどけます.
2805は正しいコードですが、解答が得られ、タイムアウトが発生しました.
https://www.acmicpc.net/board/view/73644
https://stackoverflow.com/questions/11241523/why-does-python-code-run-faster-in-a-function
他のメンバーが探してきた2つの文章を参考にして、別途関数として提出して、結果は合格しました.
Pythonが関数をバイトコードにコンパイルしているからだそうです.
1)コードを記述できない場合
https://claude-u.tistory.com/446ここで1行の文章を読んでヒントを得ました
2)
この文章は再読すればよさそうだ
千差万別
2021.11.12金
体調が悪く、いろんな面で大変な1日でした
問題は健康状態ではなく、定期的に、、、、、、、
朝早くため息をつくところだった
いつもより疲れて全身が痛くて、薬を飲んでも仕方がない.
状态を言い訳にして休むという考えは绝対にありたくない、ははは、しかしやはり坚持しなければなりません
もともと疲れていたので、ホルモンの時は一層疲れてしまいました.
今日、アルゴリズムプールはアイデアからアイデアまで止まらず、アイデアはコードで実現され、想像していた時間が長くなく、これは大きな進歩です!!!
もし誰かがこの文章を読んでいたら、ほめてもらえますか.へへへ
明日は頭がもっと柔軟で、スピードがもっと高くて、コードがもっと上手に書くことを望んでいます.
今日も明日も頑張ります~
寝なさい!!!
基礎文法を昼間まで練習する
そして夕食を食べる前にアルゴリズムの解き方を始めます.
今週の質問リストの始まりは
이분 탐색
です!にぶんたんさく
n = int(input())
n_list = list(map(int, input().split(' ')))
n_list.sort()
m = int(input())
targets = list(map(int, input().split(' ')))
#두번째 줄 정렬 a.sort() -> 1 3 5 7 9 중간값 mid = sum //2로 구하고 왼쪽부터 있는지 비교
#왼쪽 lt = 0, 오른쪽 rt = n-1
#n번째 숫자가 첫번째 리스트 안에 존재하면 1 출력
while lt<=rt: #반 나눠서 점점 범위 좁혀오다가 lt가 남은rt 거리보다 커져버리면 함수 종결
mid=(lt+rt)//2
if a[mid]==m: #a의 미드에 있는 값이 m이니?
print(mid+1) #맞으면 mid출력~ 인덱스 값이니 +1 해줌
break
elif a[mid]>m:
rt=mid-1 #큰쪽(오른쪽) 날림
else:
lt=mid+1 #왼쪽을 중간보다 한 칸 더가서 범위 좁힘
次は思考過程を記録するメモです白駿1920/2805
https://www.acmicpc.net/problem/1920
https://www.acmicpc.net/problem/2805
耳でもほどけます.
2805タイムアウト
2805は正しいコードですが、解答が得られ、タイムアウトが発生しました.
https://www.acmicpc.net/board/view/73644
https://stackoverflow.com/questions/11241523/why-does-python-code-run-faster-in-a-function
他のメンバーが探してきた2つの文章を参考にして、別途関数として提出して、結果は合格しました.
Pythonが関数をバイトコードにコンパイルしているからだそうです.
正しいがタイムアウトしたコードを表示
import sys
input=sys.stdin.readline
n, min_bring = map(int, input().split())
trees = list(map(int, input().split()))
trees.sort()
start = 0
end = max(trees)
while start <= end :
mid = (start+end) // 2
T_cut_sum = 0
for tree in trees:
if tree >= mid:
T_cut_sum += tree-mid
if T_cut_sum >= min_bring:
start = mid + 1
else:
end = mid - 1
print(end)
関数としてのコード
import sys
input=sys.stdin.readline
n, min_bring = map(int, input().split())
trees = list(map(int, input().split()))
trees.sort()
# 가장 짧은 길이 1을 start로, 나무 중 가장 긴 길이를 end로 둔다.
start = 0
end = max(trees)
check = 0
def sumcut(mid):
T_cut_sum = 0
for tree in trees:
if tree >= mid:
T_cut_sum += tree-mid
return T_cut_sum
while start <= end :
mid = (start+end) // 2
T_cut_sum = sumcut(mid)
if T_cut_sum >= min_bring:
start = mid + 1
check = mid
else:
end = mid - 1
print(end)
最初のコードは1)コードを記述できない場合
https://claude-u.tistory.com/446ここで1行の文章を読んでヒントを得ました
2)
この文章は再読すればよさそうだ
千差万別
2021.11.12金
今日の物語
体調が悪く、いろんな面で大変な1日でした
問題は健康状態ではなく、定期的に、、、、、、、
朝早くため息をつくところだった
いつもより疲れて全身が痛くて、薬を飲んでも仕方がない.
状态を言い訳にして休むという考えは绝対にありたくない、ははは、しかしやはり坚持しなければなりません
もともと疲れていたので、ホルモンの時は一層疲れてしまいました.
今日、アルゴリズムプールはアイデアからアイデアまで止まらず、アイデアはコードで実現され、想像していた時間が長くなく、これは大きな進歩です!!!
もし誰かがこの文章を読んでいたら、ほめてもらえますか.へへへ
明日は頭がもっと柔軟で、スピードがもっと高くて、コードがもっと上手に書くことを望んでいます.
今日も明日も頑張ります~
寝なさい!!!
Reference
この問題について([WEEK02] DAY12 & TMI), 我々は、より多くの情報をここで見つけました https://velog.io/@yerimii11/WEEK02-DAY12-TMIテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol