[파이썬 자료구조 7단원] - 문자열검색
2022. 2. 1. 02:27
카테고리 없음
문자열에서 부분 문자열을 검색하는 알고리즘으로 브루트 포스법,KMP법,보이어,무어법 등이 있다. 문자열검색이란? 문자열 안에 다른 문자열이 포함되어 있는지 검사하고 어디에 위치하는지 찾아내는것을 말한다. 텍스트 : 검색되는 쪽 패턴 : 찾아내는 문자열 브루트 포스법 선형 검색을 단순히 확장한 알고리즘이라서 '단순법'이라고 불린다. (효율이 좋지 않음) in과 not in을 사용하면 어떤 문자열이 다른 문자열 안에 포함되어 있는지 검색할 수 있음 find() 와 index()의 차이 find()는 검색하는 문자열이 있으면 그것의 인덱스를 반환(왼쪽에서 부터 가장 먼저 발견되는 문자열)하고 그렇지 않으면 -1을 반환한다. 하지만, index()는 검색하는 문자열이 없으면 Value Error를 내보낸다. r..
[파이썬 자료구조 6단원] - 정렬 알고리즘
2022. 1. 27. 18:12
카테고리 없음
정렬이란? 키를 항목값의 대소 관계에 따라 데이터 집합을 일정한 순서로 바꾸어 늘어놓는 작업 오름차순 : 작은 데이터를 앞쪽에 늘어놓는 작업 내림차순 : 큰 데이터를 앞쪽에 늘어놓는 작업 버블정렬 버블정렬이란 이웃한 두 원소의 대소 관계를 비교하여 필요에따라 교환을 반복하는 알고리즘으로 단순 교환정렬이라고도 한다.(안정적이다.) 패스(pass) : 원소의 비교, 교환하는 과정을 의미한다. 셰이커정령(양방향버블정령) 단순 선택 정렬 단순선택정렬 과정 1. 아직 정렬하지 않는 부분에서 값이 가장 작은 원소 a[min]을 선택한다. 2. a[min]과 아직 정렬하지 않은 부분에서 맨 앞에 있는 원소를 교환한다. (안정적이지 않다.) 단순 삽입 정렬 단순 삽입 정렬이란 주목한 원소(두번째 원소부터 주목한다)보다..
[파이썬 자료구조 4단원] - 스택과 큐
2022. 1. 23. 21:55
카테고리 없음
스택 스택은 데이터를 임시 저장할때 사용하는 자료구조로, 데이터의 입력과 출력 순서는 후입선출방식이다. (나중에 들어간게 먼저 나온다는 의미이다.) 푸시(push) : 스택에 데이터를 넣는 작업 팝(pop) : 스택에 데이터를 꺼내는 작업 스택배열 : stk 푸시한 데이터를 저장하는 스택 본체인 list형 배열 스택크기 : capacity 스택의 최대 크기를 나타내는 int형 정수 len(stk)와 일치 스택 포인터 : ptr 스택에 쌓여 있는 데이터의 개수를 나타내는 정숫값을 스택포인터 라고 한다. 가장 마지막에 푸시한 원소의 인덱스에 1을 더한 값 예외처리 예외 처리의 기본 구조 try: -------원래 처리하는과정 except: -------오류가 생성됐을때 처리하는 과정 else: -------..
[파이썬 자료구조 3단원] - 검색알고리즘
2022. 1. 23. 17:52
카테고리 없음
검색알고리즘 검색알고리즘이란 데이터집합에서 원하는 값을 가진 원소를 찾아내는 것이다. 검색알고리즘 종류 선형검색 : 무작위로 늘어놓은 데이터 집합에서 검색을 수행한다. 이진검색 : 일정한 규칙으로 늘어놓은 데이터 집합에서 아주 빠른 검색을 수행한다. 해시법 : 추가, 삭제가 자주 일어나는 데이터 집합에서 아주 빠른 검색을 수행한다. 선형검색 선형검색이란 맨앞부터 스캔하여 순선대로 검색하는 알고리즘이다. 이진검색 이진검색 알고리즘을 사용하려면 정렬되어 있어야 한다. 이진은 '반으로 쪼개다' 라는 의미이다. 정 가운데 숫자가 찾고자 하는 target숫자보다 큰지 작은 지를 비교해 보면된다. n(중앙숫자) > target 이면 왼쪽으로 검색을 진행하고 n(중앙숫자) < target 이면 오른쪽으로 검색을 계속..
[파이썬 자료구조 2단원] - 기본 자료구조와 배열
2022. 1. 23. 16:06
카테고리 없음
자료구조 자료구조는 논리적인 관계로 이루어진 데이터 구조이다. 즉, 자료구조는 데이터가 모여 있는 구조 리스트/튜플 리스트는 원소를 변경가능 튜플은 원소를 변경할수 없음 tuple은 원소가 1개인 경우 원소뒤에 쉼표를 반드시 입력해야한다. (쉼표가 없으면 단순 변수로 취급당한다.) tuple02 = 1, tuple03 = (1,) 리스트와 튜플에서 역순으로 스캔하는 경우 reversed(x) 또는 x[::-1]를 이용한다. (****내림차순하고 다르다) 리스트를 역순으로 정렬하는 법 x.reverse() 문자열, 리스트, 튜플, 딕셔너리 등의 값이 비어 있으면(" ", [ ], ( ), { }) 거짓(False) 인덱스/ 슬라이스 인덱스 : 인덱스 연산자[ ]안에 정숫값 인덱스를 지정하는 인덱스식은 리스..
[파이썬 자료구조 1단원] - 알고리즘 기초
2022. 1. 23. 15:46
카테고리 없음
알고리즘 알고리즘 : 어떠한 문제를 해결하기 위해 정해놓은 일련의 절차 => 어떠한 경우에도 실행 결과가 똑같이 나오는 것을 말합니다. 순차구조/ 선택구조 순차구조 : 앞에서부터 한 문장씩 처리되는 구조 선택구조 : 조건식으로부터 평가한 결과에 따라 프로그램에 실행 흐름이 변경됨 헤더/스위트 헤더(header) : if문이나 while문 등 복합문의 첫 부분에서 :(콜론)으로 끝나는 부분 스위트(suite) : 헤더와 한 세트로 따라다니는 실행문 folat() : 문자열을 전달받고 실행결과로 실수형을 반환 반복문 반복구조(=루프) : 어떤 조건이 성립하는 동안 반복해서 처리하는 것 사전 판단 반복문 : 반복을 계속할 것인지를 판단하는 구조 루프 본문 : 반복 대상이 되는 명령문 카운터용 변수 : 반복을 ..
[파이썬]에라토스테네스의 체(소수 구하기)
2022. 1. 16. 23:33
카테고리 없음
내가 처음 짠 코드 a,b = map(int, input().split()) sq = int(b**(1/2)) L = [] L1 = [] for i in range(a,b+1): if i ==1 : continue L.append(i) for i in range(2,sq+1): L1.append(i) for i in L1: cnt = 2 while i*cnt
[파이썬 자료구조] 1단원(알고리즘 기초), 2단원(검색알고리즘)
2022. 1. 16. 16:26
카테고리 없음
알고리즘이란? 난수 생성 함수 import random n = random.randint(a,b) a부터 b 사이의 임의의 난수를 형성함 print할 때 열 맞추는법 print(@@@@,end = '\t') 역슬래시 t로 열(세로)를 맞출수 있다.