스터디/알고리즘스터디-알까기🎯 11

완전탐색_바둑이 승차_cut edge 방법,DFS 시간초과를 방지하는 법

if ans > val + ( total - tsum ) : return 전체 합에서 tsum(바둑이를 태웠건 안태웠건 지나간 바둑이의 무게) 을 빼면 앞으로 더할 수 있는 바둑이의 무게가 나온다. 여기서 val을 더한 값이 ans보다 작다면 더 할 필요가 없다. 끝까지 가도 어차피 ans보다 작기 때문이다. dfs에 tsum을 인수로 추가하여 시간 초과를 막는다는 것이 흥미롭다. def dfs(idx,val,tsum) : global ans if val > c : return if ans > val + (total-tsum) : return if idx == n : ans = max(ans,val) return else : dfs(idx+1,val+arr[idx],tsum+arr[idx]) dfs(id..

그리디_회의실 배정, 씨름선수, 창고 정리, 침몰하는 타이타닉, 증가순열만들기, 역수열

그리디는 탐욕적인 이라는 의미로 지금 현재 가장 최적의 것을 계속 골르는 것이다. 주로 정렬과 함께 한다. 회의실 배정 코드 : if __name__=="__main__" : n = int(input()) meeting = [list(map(int,input().split())) for _ in range(n)] meeting.sort(key = lambda x : (x[1],x[0])) endTime,cnt = 0,0 for s,e in meeting : if s >= endTime : cnt +=1 endTime = e print(cnt) => 끝나는 시간을 오름차순으로 정렬한 후 시작시간이 이전 회의의 끝나는 시간보다 늦거나 같으면 해당 회의를 넣는다. 씨름 선수 코드 : if __name__=="..

이분탐색_ 이분탐색,랜선자르기,뮤직비디오,마구간 정하기

이분탐색 ! 시간 복잡도 : O(log n) 무조건 정렬이 되어있어야한다. start와 end 라는 포인터 변수를 만든다 . mid 라는 중간 지점 변수를 만들어서 (start + end ) // 2 로 설정한다. 이분탐색 코드 : if __name__=="__main__" : n,m = map(int,input().split()) num = list(map(int,input().split())) num.sort() start,end = 0,n-1 while start capacity : # cd 추가 cnt +=1 sum = x else : sum += x return cnt if __name__=="__main__" : n,m = map(int,input().split()) music = list(m..

냅색 알고리즘 _ 가방문제, 동전교환, 최대 점수 구하기

스터디는 이미 끝났지만 이미 구매해놓은 인강 다 듣고 풀어야지.. ---- 🐾20220914 복습 어떻게 풀 때마다 까먹지...? 그래도 처음 봤을 때 보다 더 빨리 풀었다는 것에 의의를 둔다... 가방 문제 : if __name__=="__main__" : n,m = map(int,input().split()) dy = [0]*(m+1) for i in range(n) : w,v = map(int,input().split()) for j in range(w,m+1) : dy[j] = max(dy[j-w] + v, dy[j]) print(dy[m]) weight 와 value가 주어질 때 주어진 무게까지 담을 수 있는 가방에서 최대의 가치를 만들어라 dy[j] 의 의미 : j 무게까지 담길 때의 최대 가..

[7]알고리즘스터디 - 섹션7_3주차 스터디

파이썬 알고리즘 문제풀이 스터디 - 알까기 _ 섹션 7 티스토리 마크다운이 이상해서 올려놓은 깃허브 주소도 올린다. https://github.com/dumi33/TIL_TodayILearn/blob/main/220225/%EC%84%B9%EC%85%987.md GitHub - dumi33/TIL_TodayILearn: 오늘 배운 코드/내용을 정리해서 올립니다. 오늘 배운 코드/내용을 정리해서 올립니다. Contribute to dumi33/TIL_TodayILearn development by creating an account on GitHub. github.com 문제 1 - 최대점수 구하기(DFS) 내가 만든 코드 1, 2번은 잘 돌아가는데 나머지는 시간초과 def dfs(x,score, time..

[6]알고리즘스터디 - 섹션6_3주차 스터디

파이썬 알고리즘 문제풀이 스터디 - 알까기 _ 섹션 6 티스토리 마크다운이 이상해서 깃허브 주소도 올린다. https://github.com/dumi33/TIL_TodayILearn/blob/main/220223/%EC%84%B9%EC%85%986.md 문제 1 - 재귀함수를 이용한 이진수 출력 def dfs(x) : if x >0: tmp = x//2 dfs(tmp) print(x%2,end = '') if __name__ == "__main__" : n = int(input()) dfs(n) def dfs(x) : if x == 0 : return else : dfs(x//2) print(x%2,end = '') if __name__ == "__main__" : n = int(input()) dfs(..

[3]알까기 스터디 -섹션3_1주차(일요일)

알까기 스터디 - 파이썬 알고리즘 문제풀이 _섹션 3 문제 1 - 회문 문자열 검사 n = int(input()) for i in range(n) : Origin = input() Origin = Origin.lower() # 대소문자 구분을 없애기위해 모두 소문자로 Test = Origin[::-1] isTrue = True for j in range(len(Origin)//2) : if Origin[j] != Test[j] : isTrue = False print("#%d %s" %(i+1 ,'YES' if isTrue==True else 'NO')) # 파이썬 출력방법 혼자 푼 풀이 섹션 2에서 출력방법을 알게되어 수월하게 풀었다. 강사님 풀이 2 n = int(input()) for i in ra..

[5]알고리즘스터디 - 섹션5_2주차 스터디

파이썬 알고리즘 문제풀이 스터디 - 알까기 _ 섹션 5 문제 1 - 가장 큰 수 num ,m = map(int,input().split()) num = list(map(int,str(num))) ans = [] for val in num: while ans and m and ans[-1] 0 : # 제거할 숫자가 남았을경우 끝자리 값을 제거 ans = ans[:-m] res = ''.join(map(str,ans)) # join은 문자열로 합해주기때문에 str을 이용 print(res) 연속된 숫자를 각각 하나의 숫자로 바꾸는 법 -> list(map(int,str(num))) 문제 2 - 쇠막대기 s = input() stac..

[4]알고리즘스터디 - 섹션4_2주차 스터디

파이썬 알고리즘 문제풀이 스터디 알까기 _ 섹션 4 문제 1 - 이분검색 n, m = map(int,input().split()) arr = list(map(int,input().split())) arr.sort() lt , rt = 0, n-1 while lt m : # 큰 부분 자르기 rt = mid -1 elif arr[mid] == m : print(mid+1) break else : # 작은 부분 자르기 lt = mid +1 문제 2 - 랜선자르기 k, n = map(int,input().split()) Line = [] largest = 0 for i in range(k) : tmp = int(input()) Line.append(tmp) largest = max(largest, tmp) de..

[2]알고리즘스터디 - 섹션2(2)_1주차 스터디

섹션 2 (2) https://www.inflearn.com/course/%ED%8C%8C%EC%9D%B4%EC%8D%AC-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-%EB%AC%B8%EC%A0%9C%ED%92%80%EC%9D%B4-%EC%BD%94%EB%94%A9%ED%85%8C%EC%8A%A4%ED%8A%B8/dashboard 파이썬 알고리즘 문제풀이 (코딩테스트 대비) - 인프런 | 강의 파이썬을 이용한 코딩테스트 문제풀이를 합니다., - 강의 소개 | 인프런... www.inflearn.com 앞서 포스팅과 같이 한달동안 이 강의를 스터디원들과 함께 풀어오고 질의응답 & 새롭게 배운것들 정리하는 스터디를 진행하기로 했다. 꾸준히 화이팅! 7번 문제 : 소수의 개수 impor..