목록Python (7)
매일 매일 미라클 코딩
삽입정렬은 리스트의 두번째 인덱스 list[1] 부터 시작한다. list[n]일때 list[n-1], list[n-2], list[n-3]...순으로비교하며 자기보다 큰 값과 자리를 바꿔나가는 방식. (오름차순의 경우) 더 작은 값이 나오지 않으면 그자리에 삽입하고 다음 턴으로 넘어간다. 선택정렬과 같은 O(n²)의 복잡도를 가지며, 입력값이 크면 시간이 굉장히 오래 걸린다. def ins_sort(a): n = len(a) for i in range(1,n): temp = a[i] # i번 위치에 있는 값을 temp에 저장 j = i-1 # i 바로 전 인덱스 j에 저장 while j >=0 and a[j] > temp: a[j+1] = a[j] # i 자리에 j 인덱스값 이동 j -= 1 a[j+1]..
선택정렬은 첫번째 인덱스 부터 시작하여 뒤에 남은 값들과 하나씩 비교한다. 남은 값들 중 가장 큰(혹은 작은) 값이 정해지면 비교기준인 인덱스와 자리를 바꿔주는 방식 - 리스트 안의 자료를 한번씩 비교하기 때문에 계산 복잡도는 O(n²) - 이해하기 쉽고 간단하지만, 비교횟수가 입력크기의 제곱에 비례하기 때문에 입력크기가 커지면 시간이 오래걸린다. def sel_sort(a): n = len(a) for i in range(0,n-1): #n-2까지 확인 min_idx = i # i번 위치부터 끝까지 자료값중 최솟값의 위치를 찾음 for j in range(i+1,n): if a[min_idx]> a[j]: min_idx =j a[i], a[min_idx] = a[min_idx],a[i] # 찾은 인덱스..

웹 크롤링 (Crawling) : 페이지 자체를 다운로드, 수집 웹 스크랩핑 (Scrapping): 페이지에서 원하는 부분만 추출 일반적으로 둘을 합쳐 크롤링으로 통용되고 있다 오늘은 파이썬에서 제공하는 BeautifulSoup 라이브러리를 통해, 윤동주 시인의 작품 리스트를 가져오고자 한다. 위키문헌에서 윤동주 시인을 검색해 보았다. 일일이 받아쓰기엔 작품이 굉장히 많다. 하지만 이미 잘 정리된 데이터가 있으니 프로그래밍을 통해 이를 추출하면 될 것이다. 데이터 크롤링을 위해서는 웹에서 가져오고자 하는 데이터가 어떤 선택자에 의해 표현되고 있는지 알아야한다. F12 번을 눌러 페이지 소스를 확인한다. Element 탭 왼쪽의 버튼을 누르면 페이지 요소를 직접 눌러 태그를 확인할 수 있다. 작품 이름을 ..