본문 바로가기
반응형

『 Python 』39

[5] Python 문제해결 - 정렬 2 [선택 정렬] 셀렉션 알고리즘 > 저장되어 있는 자료로부터 K번째로 큰 혹은 작은 원소를 찾는 방법 > 최소값, 최대값 혹은 중간값을 찾는 알고리즘을 의미하기도 함. 선택 과정 1. 정렬 알고리즘을 이용하여 자료를 정렬 2. 원하는 순서에 있는 원소 가져오기. k번째로 작은 원소를 찾는 알고리즘 > 1번부터 k번째까지 작은 원소들을 찾아 list의 앞쪽으로 이동시키고, List의 k번째를 반환 > k가 비교적 작을 때 유용하며 O(kn)의 수행시간을 필요로 한다. def select(list, k): for i in range(0, k ): minIndex = i for j in range(i+1, len(list)): if list[minIndex] > list[j]: minIndex = j list[i], list.. 2020. 1. 5.
[4] Python 문제해결 - List 2 검색 검색 : 저장되어 있는 자료 중에서 원하는 항목을 찾는 작업 목적하는 탐색키를 가진 항목 탐색키 : 자료를 구변하여 인식할 수 있는 키 검색의 종류 순차검색, 이진 검색, 인덱싱 순차검색 일렬로 되어 있는 자료를 순서대로 검색하는 방법 List나 연결 List 등 순차구조로 구현된 자료구조에서 유용하다. 구현이 쉽지만, 검색 대상이 많은 경우 수행시간의 증가로 비효율적이다. 2가지 경우 - 정렬된 경우와 정렬되지 않은 경우 1. 정렬되지 않은 경우 1) 첫번째 원소부터 순서대로 검색대상과 키 값이 같은 원소가 있는지를 비교하여 찾음 2) 키 값이 동일한 원소를 찾으면 그 원소의 인덱스를 반환 3) 검색 대상을 찾지 못하면 실패함. > 첫 번째 원소를 찾을 때에는 1번 비교 > 두 번째 원소를 찾을 때에는.. 2020. 1. 5.
[3] Python 문제해결 - List 2 2차원 List 구조 1. 1차원 List를 묶어놓은 List 2. 2차우너 이상으 ㅣ다차원 List는 차원에 따라 index를 선언 3. 2차원 List의 선언 : 세로길이(행의 개수), 가로길이(열의 개수)를 필요로 함. list 초기화 원소를 직접나열하기 arr = [0,0,0,0,0] arr = [0]*5 arr = [ i for i in range(2,9) if i i%2==0] --> 2 4 6 8 2차원도 동일하다. 2차원 List 입력받기 1. n, m = map(int, input().split()) mylist = [0 for _ in range(n)] # my list = [0] *n for i in range(n): mylist[i] = list(map(int,input().spli.. 2020. 1. 5.
[2] Python 문제해결 - 정렬 버블 정렬 : 인접한 두개의 원소를 비교하며 자리를 계속 교환하는 방식 정렬 과정 1. 첫 번째 원소부터 ㅇ니접한 원소끼리 계속 자리를 교환하면서 맨 마지막 자리까지 이동 2. 한 단계가 끝나면 가장 큰 원소 또는 가장 작은 원소가 마지막 자리로 정렬된다. 3. 교환하며 자리를 이동하는 모습이 물 위에 올라오는 거품모양 같아서 버블 정렬이라고 한다. def BubbleSort(a) : for i in range(len(a)-1, 0, -1) for j in range(0,i): if a[j] > a[j+1]: a[j], a[j+1] = a[j+1],a[j] 카운팅 정렬 : 항목들의 순서를 결정하기 위해 집합에 각 항목이 몇 개씩 있는지 세는 작업을 하여, 선형 시간에 정렬하는 효율적인 .. 2020. 1. 5.
[0] Python 문제해결 알고리즘이란? 유한한 단계를 통해 문제를 해결하기 위한 절차나 방법을 말함. 1. 컴퓨터용어로 쓰이며, 컴퓨터가 어떤 일을 수행하기 위한 단계적 방법 2. 어떠한 문제를 해결하기 위한 절차 알고리즘 표현법 1. 슈도코드 특정 프로그래밍 언어의 문법을 따라 쓰여진 것이 아니라. 일반적인 언어로 코드를 흉내 내어 알고리즘을 써놓은 코드 > 의사 코드로 흉내만 내는 코드이다. > 실제적인 프로그래밍 언어로 작성된 코드처럼 컴퓨터에서 실행할 수 없다. > 특정 언어로 프로그램을 작성하기 전에 알고리즘을 대략적으로 모델링하는 데에 쓰인다. 2. 순서도 프로그램이나 작업의 진행 흐름을 순서에 따라 여러 가지 기호나 문자로 나타낸 도표 > 흐름도, 프로그램의 논리적인 흐름 데이터의 처리 과정을 표현하는 데 사용한다... 2020. 1. 5.
[1] Python 문제해결 - List 1. 완전검색 Exhaustive Search : 문제의 해법으로 생각할 수 있는 모든 경우의 수를 나열해보고 확인하는 기법. > 경우의 수가 작을 때 유용하다. > 완전검색으로 접근하여 해답을 도출한 후 성능 개선을 위해 다른 알고리즘을 사용하는게 좋음. 경우의 숫자들을 모두 나타내준다. 2. 탐욕 알고리즘 Greedy Algorithm : 최적의 해를 구하는데 사용되는 근시안적인 방법 : 여러 경우 중 하나를 결정해야 할때마다 그 순간에 최적이라고 생각되는 것을 선택해 나가는 방식 수행 과정 A. 해 선택 : 현재 상태에서 부분 문제의 최적 해를 구한 뒤 이를 부분 해 집합에 추가함 B. 실행 가능성 검사 : 새로운 부분 해 집합이 실행 가능한지를 확인 즉 : 문제의 제약 조건을 위반하지 않는지를 검.. 2019. 11. 5.
파이썬 웹 크롤링 [Web Crawling] - 1 - 1. 웹 문서 전체 가져오기 2. 타이틀 가져오기 태그로 구성된 트리에서 title 태그만 출력합니다 메타 데이터만 가져오기 3. 모든 메타 데이터의 내용 가져오기 웹문서에서 메타 데이터만 찾아서 content 속성값을 가져옵니다. 4. 원하는 태그의 내용 가져오기 find를 사용하면 원하는 태그의 정보만 가져올 수 있습니다. 예를 들어 www.python.org/about 에서 다음 태그의 content 속성값을 가져오려면.. 우선 웹문서에 있는 meta 태그 중 가져올 태그를 name 속성 값이 description인 것으로 한정합니다. meta 태그의 content 내용을 가져옵니다. 모든 링크의 텍스트와 주소 가져오기 2019. 10. 1.
[7] Python Gui 보충 내용 내 빠지고 지나간 부분이 있어서 추가적으로 설명을 하겠습니다. 스코롤 텍스트 위젯에서 그리드 부분을 보시면 sticky="WE" 를 넣은것을 보실수 있을 것입니다. 이것을 넣으면 위에 버튼과 아래 레디오버튼 부분의 간격에 맞춰서 스크롤 텍스트 위젯과 조화를 이룰수 있게 도와줍ㅂ니다. columnspan=3을 지울시 위젯 배치가 엉망이 될 수 있습니다. 2번째 사진이 columnspan=3을 지웠을때 일어나는 일입니다. stikcy="WE"와 columnspan=3은 위젯간의 조화를 이룰수 있게 도와주는 역할을 합니다. 그리고 전 장에서 했던 프레임은 프레임 안에 프레임을 넣을수 있으며 부모 프레임과 자식 프레임으로 구분을 지을 수 있습니다. A 라는 부모 프레임안에 B라는 자식 프레임이 들어갈수 있습니다.. 2019. 9. 4.
[6] Python GUI 프레임 만들기 안녕하세요 ㅎㅎ 요번에 해볼것은 python GUI 프레임 만들기입니다. 저번에 했었던 코드아래에 만들면 됩니다. 저번에는 win이라는 전체적인 창 부분의 프레임을 사용했지만 새로운 프레임을 만들어서 사용한 것을 확인 하실수 있을 것입니다. 보시면 ttk.Label(win, text="label")이라 한것을 새로운 프레임을 위에서 만들어서 그 프레임의 값을 변수에 넣어서 ttk.Label(buttons_frame, text="Label1")처럼 win을 대신해서 buttons+frame을 쓴것을 보실수 있을 것입니다. 위와 같이 나타났습니다. 프레임 안에 들어간 라벨은 그 프레임의 위치를 기준으로 x y값의 순서대로 배열되는 것을 보실수 있습니다. @ 두줄은 필요없는 내용입니다. 제가 코드를 글로 적지.. 2019. 9. 4.
반응형