diff --git "a/9mean/\354\235\264\354\275\224\355\205\214\355\214\214\354\235\264\354\215\254/\353\213\244\354\235\264\353\202\230\353\257\271 \354\213\244\354\240\204\353\254\270\354\240\234/1\353\241\234 \353\247\214\353\223\244\352\270\260.py" "b/9mean/\354\235\264\354\275\224\355\205\214\355\214\214\354\235\264\354\215\254/\353\213\244\354\235\264\353\202\230\353\257\271 \354\213\244\354\240\204\353\254\270\354\240\234/1\353\241\234 \353\247\214\353\223\244\352\270\260.py" new file mode 100644 index 0000000..cabbfb4 --- /dev/null +++ "b/9mean/\354\235\264\354\275\224\355\205\214\355\214\214\354\235\264\354\215\254/\353\213\244\354\235\264\353\202\230\353\257\271 \354\213\244\354\240\204\353\254\270\354\240\234/1\353\241\234 \353\247\214\353\223\244\352\270\260.py" @@ -0,0 +1,19 @@ +x=int(input()) +d=[0]*(x+1) + +d[2]=d[1]+1 +d[3]=d[1]+1 + +for i in range(2,x+1): + #이전 값에서 +1 한 경우 + d[i]=d[i-1]+1 + #나누어 떨어지는 경우의 +1 or 중에 작은 값 + if i%5==0: + d[i]=min(d[i],d[i//5]+1) + if i%3==0: + d[i]=min(d[i],d[i//3]+1) + if i%2==0: + d[i]=min(d[i],d[i//2]+1) + +print(d[x]) + diff --git "a/9mean/\354\235\264\354\275\224\355\205\214\355\214\214\354\235\264\354\215\254/\353\213\244\354\235\264\353\202\230\353\257\271 \354\213\244\354\240\204\353\254\270\354\240\234/\352\260\234\353\257\270 \354\240\204\354\202\254.py" "b/9mean/\354\235\264\354\275\224\355\205\214\355\214\214\354\235\264\354\215\254/\353\213\244\354\235\264\353\202\230\353\257\271 \354\213\244\354\240\204\353\254\270\354\240\234/\352\260\234\353\257\270 \354\240\204\354\202\254.py" new file mode 100644 index 0000000..2555bc6 --- /dev/null +++ "b/9mean/\354\235\264\354\275\224\355\205\214\355\214\214\354\235\264\354\215\254/\353\213\244\354\235\264\353\202\230\353\257\271 \354\213\244\354\240\204\353\254\270\354\240\234/\352\260\234\353\257\270 \354\240\204\354\202\254.py" @@ -0,0 +1,9 @@ +n=int(input()) +food=list(map(int,input().split())) +d=[0]*(n) +d[0]=food[0] +d[1]=max(food[0],food[1]) +for i in range(2,n): + #직전거를 안먹고 현재먹기 or 현재를 포기하고 직전거를 선택하기 + d[i]=max(d[i-2]+food[i],d[i-1]) +print(d[n-1]) diff --git "a/9mean/\354\235\264\354\275\224\355\205\214\355\214\214\354\235\264\354\215\254/\353\213\244\354\235\264\353\202\230\353\257\271 \354\213\244\354\240\204\353\254\270\354\240\234/\353\260\224\353\213\245 \352\263\265\354\202\254.py" "b/9mean/\354\235\264\354\275\224\355\205\214\355\214\214\354\235\264\354\215\254/\353\213\244\354\235\264\353\202\230\353\257\271 \354\213\244\354\240\204\353\254\270\354\240\234/\353\260\224\353\213\245 \352\263\265\354\202\254.py" new file mode 100644 index 0000000..270a1b4 --- /dev/null +++ "b/9mean/\354\235\264\354\275\224\355\205\214\355\214\214\354\235\264\354\215\254/\353\213\244\354\235\264\353\202\230\353\257\271 \354\213\244\354\240\204\353\254\270\354\240\234/\353\260\224\353\213\245 \352\263\265\354\202\254.py" @@ -0,0 +1,9 @@ +n=int(input()) +d=[0]*(n+1) +d[1]=1 +d[2]=3 +for i in range(3,n+1): + #이전것에 2*1 하나 더하기 + 전전것에 2*2 랑 1*2 두개 더한것 + d[i]=(d[i-1]+2*d[i-2])%796796 + +print(d[n]) diff --git "a/9mean/\354\235\264\354\275\224\355\205\214\355\214\214\354\235\264\354\215\254/\354\235\264\354\247\204\355\203\220\354\203\211 \352\270\260\354\266\234\353\254\270\354\240\234/\352\263\240\354\240\225\354\240\220 \354\260\276\352\270\260.py" "b/9mean/\354\235\264\354\275\224\355\205\214\355\214\214\354\235\264\354\215\254/\354\235\264\354\247\204\355\203\220\354\203\211 \352\270\260\354\266\234\353\254\270\354\240\234/\352\263\240\354\240\225\354\240\220 \354\260\276\352\270\260.py" new file mode 100644 index 0000000..605e05e --- /dev/null +++ "b/9mean/\354\235\264\354\275\224\355\205\214\355\214\214\354\235\264\354\215\254/\354\235\264\354\247\204\355\203\220\354\203\211 \352\270\260\354\266\234\353\254\270\354\240\234/\352\263\240\354\240\225\354\240\220 \354\260\276\352\270\260.py" @@ -0,0 +1,19 @@ +def binarySearch(start,end,arr): + + while start<=end: + mid=(start+end)//2 + #고정점 찾으면 출력 + if arr[mid]==mid: + return mid + #배열이 오름차순으로 정렬되어있으므로 arr[mid]의 값이 mid보다 크면 고정점은 왼쪽에 있는거임 + elif arr[mid]>mid: + end=mid-1 + else: + start=mid+1 + return -1 + +n=int(input()) +arr=list(map(int,input().split())) +print(binarySearch(0,n-1,arr)) + + diff --git "a/9mean/\354\235\264\354\275\224\355\205\214\355\214\214\354\235\264\354\215\254/\354\235\264\354\247\204\355\203\220\354\203\211 \352\270\260\354\266\234\353\254\270\354\240\234/\352\263\265\354\234\240\352\270\260 \354\204\244\354\271\230.py" "b/9mean/\354\235\264\354\275\224\355\205\214\355\214\214\354\235\264\354\215\254/\354\235\264\354\247\204\355\203\220\354\203\211 \352\270\260\354\266\234\353\254\270\354\240\234/\352\263\265\354\234\240\352\270\260 \354\204\244\354\271\230.py" new file mode 100644 index 0000000..2c30412 --- /dev/null +++ "b/9mean/\354\235\264\354\275\224\355\205\214\355\214\214\354\235\264\354\215\254/\354\235\264\354\247\204\355\203\220\354\203\211 \352\270\260\354\266\234\353\254\270\354\240\234/\352\263\265\354\234\240\352\270\260 \354\204\244\354\271\230.py" @@ -0,0 +1,28 @@ +n,c=map(int,input().split()) +house=[] +for _ in range(n): + house.append(int(input())) +house.sort() + + +#공유기 설치간격을 이분탐색으로 찾기 +start=1 +end=house[n-1]-house[0] +res=0 + +while start<=end: + mid=(start+end)//2 + cur=house[0] + cnt=1 + for i in range(1,n): + if house[i]>=cur+mid: + cur=house[i] + cnt+=1 + #공유기 설치한 개수가 c이상이면 설치간격을 더 넓혀도 됨 + if cnt>=c: + start=mid+1 + res=mid + #설치간격 더 좁히기 + else: + end=mid-1 +print(res) diff --git "a/9mean/\354\235\264\354\275\224\355\205\214\355\214\214\354\235\264\354\215\254/\354\235\264\354\247\204\355\203\220\354\203\211 \352\270\260\354\266\234\353\254\270\354\240\234/\354\240\225\353\240\254\353\220\234 \353\260\260\354\227\264\354\227\220\354\204\234 \355\212\271\354\240\225 \354\210\230\354\235\230 \352\260\234\354\210\230 \352\265\254\355\225\230\352\270\260.py" "b/9mean/\354\235\264\354\275\224\355\205\214\355\214\214\354\235\264\354\215\254/\354\235\264\354\247\204\355\203\220\354\203\211 \352\270\260\354\266\234\353\254\270\354\240\234/\354\240\225\353\240\254\353\220\234 \353\260\260\354\227\264\354\227\220\354\204\234 \355\212\271\354\240\225 \354\210\230\354\235\230 \352\260\234\354\210\230 \352\265\254\355\225\230\352\270\260.py" new file mode 100644 index 0000000..cb62458 --- /dev/null +++ "b/9mean/\354\235\264\354\275\224\355\205\214\355\214\214\354\235\264\354\215\254/\354\235\264\354\247\204\355\203\220\354\203\211 \352\270\260\354\266\234\353\254\270\354\240\234/\354\240\225\353\240\254\353\220\234 \353\260\260\354\227\264\354\227\220\354\204\234 \355\212\271\354\240\225 \354\210\230\354\235\230 \352\260\234\354\210\230 \352\265\254\355\225\230\352\270\260.py" @@ -0,0 +1,40 @@ +def binary_search(x,arr): + global cnt + start,end=0,n-1 + + while start<=end: + mid=(start+end)//2 + + if arr[mid]==x: + cnt+=1 + #왼쪽으로 오른쪽으로 x가 있는지 탐색하기 + searchLeft(x,arr,mid) + searchRight(x,arr,mid) + return + if arr[mid]>x: + end=mid-1 + else: + start=mid+1 + +def searchLeft(x,arr,idx): + global cnt + for i in range(idx-1,-1,-1): + if arr[i]==x: + cnt+=1 + else: + return +def searchRight(x,arr,idx): + global cnt + for i in range(idx+1,n-1): + if arr[i]==x: + cnt+=1 + else: + return +n,x=map(int,input().split()) +arr=list(map(int,input().split())) +cnt=0 + +binary_search(x,arr) +if cnt==0: + cnt=-1 +print(cnt)