목록Python (6)
Real Late Starter
보이어-무어 알고리즘 - 오른쪽에서 왼쪽으로 비교, 대부분의 상용 소프트웨어에서 채택하고 있는 알고리즘입니다. - 패턴에 오른쪽 끝에 있는 문자가 불일치하고, 이 문자가 패턴 내에 존재하지 않는 경우, 이동거리는 패턴의 길이 만큼이 됩니다. - M은 전체 문자열이고 N이 찾으려는 문자열이라고 할 때.시간 복잡도는 일반적으로 O(n) 이하이고 최악의 경우에는 O(MN)가 됩니다. """ 코드 출처 : https://mungto.tistory.com/124 """ #문자열 검색하는 보이어 무어 알고리즘 def boyer_moore(pattern, text): #길이를 자주쓰므로 길이를 받아둔다. M = len(pattern) N = len(text) i = 0 #반복은 최대 긴텍스트 길이 - 작은텍스트 길이..
1. 검색 1) 순차검색 정렬되지 않은 자료의 검색과정 - 첫번째 원소부터 순서대로 검색대상과 키 값이 같은 원소가 있는지를 비교하여 찾음 - 키 값이 동일한 원소를 찾으면 그 원소의 인덱스를 반환 - 자료구조의 마지막에 갈 때 까지 검색 대상을 찾지 못하면 검색 실패 찾고자 하는 원소의 순서에 따른 비교횟수 결정 - 첫 번째 원소를 찾을 떄에는 1번 비교, 두 번째 원소를 찾을 때에는 2번 비교 - 정렬되지 않은 자료에서의 순차 검색의 평균 비교 횟수 (n+1)/2 - 시간 복잡도는 O(n) def sequentialSearch(a,n,key): i = 0 while i < n and a[i] != key: i += 1 if i < n: return i else: return -1 정렬된 자료의 검색과..
이미 만들어논 코드를 재사용할 수 있다면, 불필요한 작업을 축소하고 효율성을 향상할 수 있고 결과적으로 생산성을 높일 수 있습니다. 객체지향 프로그래밍은 이러한 장점들을 제공하여 대규모 프로그램을 효율적으로 코딩할 수 있습니다. 파이썬에서 제공하는 강력한 기능인 객체지향 프로그램 기법에 대해 알아봅니다. 1. 객체지향(Object Oriented Programming)의 이해 객체지향 프로그래밍이란? 효율적인 프로그램을 만들기 위한 기술이다. 프로그램의 로직을 상태와 행위로 이루어진 객체를 만든 다음 해당 객체들을 레고 블록 처럼 조립하여 하나의 프로그램을 만드는 것이다. 객체 형성 => 객체 조립 => 프로그램 형성 즉, 객체들을 만들고 그 객체를 이용해 문제를 해결하는 프로그래밍 방법이다. 객체란 무..
사전의 value 값으로 정렬하는 방법은 sorted 함수를 사용합니다. sorted 함수는 key 를 받을 수 있는데, 여기서 lambda 식을 사용하여 튜플에서 1 번째 index를 기준으로 정렬하는 것 이지요 >>> d = {'A': 3, 'C': 1, 'G': 5, 'T': 2} >>> d {'A': 3, 'C': 1, 'G': 5, 'T': 2} ## d.items() 를 하여 각 key, value 가 tuple로 들어있는 ## 리스트 (dict_items 객체) 로 만듭니다 >>> d.items() dict_items([('A', 3), ('C', 1), ('G', 5), ('T', 2)]) ## dict_items 객체를 lambda 식을 활용하여 정렬을 하는 거지요 ## 오름차순 정렬 >..
우리가 프로그래밍을 하면서 때때로 오류을 마주치게 된다. 오류를 해결하는 것이 가장 좋겠지만 오류를 해결하는데 너무 많은 시간을 쏟게된다면 효율적이지 않을 것이다. 오류는 두가지로 구분 할 수 있다. 1. 구문오류 - 해석 단계에서 발생 - 잘못된 명령을 입력해 발생한다. 2. 예외 - 실행 단계에서 발생 - 문법적인 문제는 없지만 실행 중에 예기치 않게 발생하는 오류를 말한다. 2-1) 예외 발생 시 해결 방법 A. if 문을 이용한 예외의 처리 - 정상적인 흐름을 제어할 경우에만 사용 가능 try ~ except 문 예외가 발생했을 때 처리 try ~ except ~ else 문 예외가 발생했을 때 처리 예외가 발생하지 않았을 때 try ~ except ~ else ~ finally 문 예외가 발생했..
파이썬 프로그래밍에서는 함수나 기능 등을 직접 만들어서 사용할 수도 있겠지만 전문가나 고급 프로그래머가 미리 만들어논 기능들을 사용하여 간편하게 프로그래밍을 할 수 있다. 이러한 것을 활용하면 생산성 및 품질 향상을 기대할 수 있다. 이런 기능들을 API(Application Programming Interface)이라고한다. 따라서 자신이 프로그래밍을 할 때는 미리 만들어진 API가 있는지 확인하고 코딩을 하는 습관을 기르면 좋다. 이미 잘 만들어진 함수가 있는데 자신이 직접 프로그래밍하면서 시간을 들일 필요가 없기 때문이다. 파이썬은 다양한 목적의 내장함수를 제공한다. 내장함수는 다음과 같이 나누어 볼 수 있다. - 수치형 데이터 조작을 위한 함수 - 집합과 원소 사이의 관계를 다루는 함수 - 각종 ..