반응형

파이썬 73

[알고리즘] 파이썬으로 병합 정렬 구현하기 :: merge sort in python :: bottom up 방식

파이썬으로 bottom-up 방식 merge sort 구현하기 1. merge sort란? 합병정렬/병합정렬은 반씩 분할해서 다시 합치면서 정렬하는 방식이다. https://ko.wikipedia.org/wiki/합병_정렬#/media/파일:Merge-sort-example-300px.gif 2. merge sort in python 이를 python3에서 구현하면 다음과 같다. 123456789101112131415161718192021# merge sortdef merge(left, right) : v=list() i=0;j=0 while(i merge_sort([0, 5, 7, 6, 1, 2, 8, 3, 4, 9]) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] input으로 들어간 10개..

[알고리즘] 파이썬으로 삽입정렬 구현하기 :: insertion sort in python

파이썬으로 삽입정렬 구현하기 :: insertion sort in python 1. 삽입정렬이란? What is a insertion sort? 삽입 정렬은 모든 요소를 앞에서부터 차례대로 이미 정렬된 배열 부분과 비교하여, 자신의 위치를 찾아 삽입함으로써 정렬을 완성하는 알고리즘이다.https://ko.wikipedia.org/wiki/%EC%82%BD%EC%9E%85_%EC%A0%95%EB%A0%AC 2. insertion sort in python 이를 python3에서 구현하면 다음과 같다. 123456789# insertion sortdef insert(v) : for i in range(1,len(v)) : j=i-1 while(j>=0 and v[i] insert([7, 6, 1, 8, 5,..

[알고리즘] 파이썬으로 sort하기 :: bubble sort(버블정렬), insert sort(삽입정렬), merge sort(병합정렬), heap sort(힙정렬)

파이썬으로 정렬하기 1. bubble sort in python 1234567def bubble(v) : l = len(v) for i in range(l-1): for j in range(l-i-1) : if v[j]>v[j+1] : v[j+1], v[j] = v[j], v[j+1] return vColored by Color Scriptercs 2. insertion sort in python 123456789# insertion sortdef insert(v) : for i in range(1,len(v)) : j=i-1 while(j>=0 and v[i]

[백준] 2798번 : 블랙잭 in python 파이썬 코드 & 설명

파이썬으로 백준 2798번 블랙잭 풀기 https://www.acmicpc.net/problem/2798 코드 12345678910n, m = map(int,input().split())v = list(map(int, input().split()))s = list()for i in range(len(v)) : for j in range((i+1), len(v)) : for z in range((j+1),len(v)) : s.append(sum([v[i],v[j],v[z]]))s = [i for i in s if i0 : print(max(s))cs 모든 경우의 수를 다 구한 다음, 해가 존재할 때 출력한다. 파이썬이 아닌 다른 코드로는 재귀로 풀던데, 백준에서 파이썬은 재귀로 풀면 항상 런타임 에러가 난다.

[백준] 1002번 : 터렛 in python 파이썬 코드 및 설명

파이썬으로 백준풀기 : 1002번 터렛 https://www.acmicpc.net/problem/1002 코드 12345678n = int(input()) for i in range(n) : x1, y1, r1, x2, y2, r2 = map(int, input().split()) r = ((x1-x2)**2 + (y1-y2)**2)**(1/2) R = [r1,r2,r] m=max(R); R.remove(m) print(-1 if (r==0 and r1==r2) else 1 if (r == r1+r2 or m==sum(R)) else 0 if (m > sum(R)) else 2)cs 코드설명 총 네 가지 경우의 수가 있다. (두 원의 중점 사이의 거리를 r이라 하자.) -1 : 두 원이 일치하는 경우r=..

반응형