dev/알고리즘

dev/알고리즘

조합 알고리즘 파이썬

arr = [1,2,3,4,5] visted = [False for i in range(5)] def comb(arr,idx,cnt): if cnt ==0: for i in range(len(visted)): if visted[i] == True: print(arr[i],end=' ') print() return for i in range(idx,len(arr)): if visted[i] == True: continue visted[i] = True comb(arr,i,cnt-1) visted[i]= False comb(arr,0,3) 시간복잡도 O(2^n) 해당 원소를 뽑는다 안뽑는다 라는 두가지 경우로 시간복잡도는 2^n이 됨 매개변수 idx 를 중점적으로 봐보면 for문이 idx를 기준으로 시작하는..

dev/알고리즘

백준 2805 pypy3 python 차이

오랜만에 이진탐색 코드를 좀 풀어보려고 하는데 계속 시간초과가 난다.. 4년전의 나와 지금의 나는 여전히... ㅋㅋ 아니 근데 도저히 납득이 안됐다. 그래서 알아보니 python 으로 제출하면 시간초과가 난다는 것이다. 그래서 pypy3로 제출하니.. 시간초과가 안난다 ㅋ import sys n,m = map(int, input().split()) v = list(map(int,sys.stdin.readline().split())) start = 1 end = max(v) answer =0 v.sort(reverse=True) while start0: tsum+=i-mid elif i-mid m: start = mid +1 answer = mid print(answer)

dev/알고리즘

백준 1463(동적 계획법)

#include #include int main(void) { int n; int * a =NULL; int i; scanf("%d",&n); a=calloc(n+1,sizeof(int)); for(i=1;i=1;i--) { if(a[i]!=10000000) { if(i/3 >=1 && i%3==0){ if(a[i/3] > a[i]+1){ a[i/3]=a[i]+1; } } if(i/2 >=1 && i%2==0){ if(a[i/2] > a[i]+1){ a[i/2]=a[i]+1; } } if(i-1 >=1 ){ if(a[i-1] > a[i]+1){ a[i-1]=a[i]+1; } } } } printf("%d",a[1]); return 0; } n 번째 값을 입력받으면 n을 0으로 만든다. 그리고 n을 3으로..

jeongsu
'dev/알고리즘' 카테고리의 글 목록