오늘은 오전에 몸 상태가 안좋았어서 약찾아먹고 해결하고 한다고 좀 부산했고,,,
낮까지 기초 문법좀 다시 잡았다
그리구 저녁먹기 전쯤부터 알고리즘 풀기 시작
이번주 문제리스트의 첫 시작은 이분 탐색
!
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 #왼쪽을 중간보다 한 칸 더가서 범위 좁힘
다음은 생각 과정을 끄적거린 메모들,,
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
타팀원분이 찾아주신 두 글을 참고해 함수로 따로 만들어서 제출했더니 통과가 됐다..
파이썬이 함수를 바이트코드로 컴파일 해서 그렇다고 한다
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 이 곳에서 글을 한 줄씩만 읽으며 힌트를 얻었다
2)
https://alpyrithm.tistory.com/2 이 글은 한 번 더 읽어보면 좋을 것 같다
여러 시행착오가 나와있다
2021.11.12 금
몸 컨디션이 안 좋아 여러모로 버거웠던 하루 ㅠㅠ
건강 컨디션이 아니라,,,,,,,,,,,,,,,,,,,정기적으로 찾아오는 것이라는게 문제
아침부터 한숨나올 뻔 했다 ㅎㅎ;;;
평소보다 더 피곤하고 온몸이 아픈건 약 먹어도 어쩔 수 없다
컨디션 핑계대며 쉬어야겠다 이런 마인드는 절대 갖기 싫다 ㅋㅋ 그래도 우직하게 버텨야지
안그래도 피곤했는데 호르몬때매 겹으로 더 피곤해졌다 따흐흑
오늘은 알고리즘 풀이를 아이디어에서 그치지 않고 생각을 코드로 구현까지 했는데 생각보다 오래걸리지 않았다는 점이 장족의 발전이었다 !!!!
누군가 이 글을 보고있다면 칭찬좀 해주시겠어요? (넝담임) 헤헤
내일은 좀 더 머리도 팽팽 돌아가고 속도도 더 나고 코드도 더 잘 써지길 !!
오늘도 내일도 화이팅팅~
자러가자 !!!!!!!!!