본문 바로가기

Python6

Python 자료구조 자료구조 란? 데이터에 효율적으로 접근하고 조작하기 위한 데이터의 조직, 관리, 저장 구조 다양한 자료구조가 존재하므로 상황에 맞는 구조를 사용해야한다. python에서는 list, tuple, dictionary, set을 활용하여 대부분의 자료구조를 구현할 수 있다. 자료구조의 사용 목적 데이터의 조직화를 통한 효율적인 저장, 관리 효율적인 메모리 사용 선형 자료구조 순차리스트(Array List) Python에서는 List를 통해 구현할 수 있다. 논리적인 순서와 물리적인 순서가 같은 구조 Element (요소) : 배열을 구성하는 각각의 값 Index (인덱스) : 배열에서 위치를 가리키는 숫자, 값에 대한 유일무이한 식별자 장점 크기가 정해져 있지 않다. = 데이터를 추가/삭제 시 메모리 공간이.. 2024. 1. 21.
Python 자료타입 자료형이란? 변수를 저장하는 데이터 형식 종류 : Integer, Float, String, List, Dictionary 등등 자료형이 중요한 이유 자료형마다 메모리 공간의 크기가 다르다. 자료형 별로 서식문자와 데이터 표현 범위가 다르다. ➡️ 메모리의 낭비 최소화 더보기 📌 Python에서 변수의 메모리 크기 출력 방법 from sys import getsizeof a = 1 print(getsizeof(a)) # 28 b = "1" print(getsizeof(b)) # 50 자료형 종류 더보기 📌 자료형 알아보는 방법 print(type(None)) # print(type(1)) # print(type(1.0)) # print(type(1 + 1j)) # print(type("1")) # Non.. 2024. 1. 16.
시간복잡도와 공간복잡도 계기 및 목표 알고리즘 문제를 풀다보면 효율성 테스트에서 막히는 경우가 꽤 된다. 알고리즘의 효율성을 높이기 위해 어떤 부분에 집중해야하는지에 대해서 알기위함 알고리즘의 효율성 = 시간복잡도를 낮춘다 && 공간복잡도를 낮춘다 시간복잡도란? 공간복잡도란? 복잡도(Complexity)란? 알고리즙의 성능, 효율성을 나타내는 척도 크게 시간 복잡도(time complexity) 와 공간 복잡도(space Complexity)로 나눌 수 있다. 각 알고리즘이 주어진 특정 크기의 입력(n)을 기준으로 수행시간(연산) 혹은 사용공간이 얼마나 되는지 객관적으로 비교할 수 있는 기준을 제시 복잡도를 나타내는 방법으로는 최악의 경우를 대비할 수 있는 Big-O 표기법을 주로 사용한다. 수행시간 = 시간복잡도 메모리사용량.. 2024. 1. 14.
파이썬(Python) - 이분탐색(이진탐색) / bisect 이진 탐색(이분 탐색) 정렬된 상태의 리스트에서 탐색범위를 반으로 줄여가며 데이터를 탐색하는 방법 리스트가 반드시 정렬된 상태여야만 한다. lst = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] # 오름차순으로 정렬된 상태 num = 7 # 정렬된 상태를 유지하며 배열에 추가할 요소 left = 0 # 왼쪽 기준 인덱스 right = len(lst)-1 # 오른쪽 기준 인덱스 while left= num: right = mid - 1 result = mid else: left = mid + 1 print(result) # 7 각 양끝의 인덱스를 기준으로 잡고 가운데 인덱스를 비교값을 삼아 범위를 반씩 줄여나가는 방식 절반씩 범위를 줄여가기에 O(logN)이 성립! bisect - .. 2022. 4. 12.
파이썬(Python) - 문자열에서 여러 문자 바꾸기 Method replace() : 문자열에서 한 문자를 다른 문자로 변경 re.sub() / re.subn() : 문자열에서 정규식에 맞는 문자들을 모두 변경 maketrans() / translate() : 1대1형식으로 여러 문자를 변경 및 삭제 →문자열은 인덱스로 조회는 가능하지만 직접적인 수정 및 삭제는 불가능하므로 위와 같은 방법으로 수정한다. replace() 특정문자를 대체할 때 문자열.replace(문자열에서 교체할 문자, 일치하는 문자를 대체할 문자 , [교체할 횟수]) string = "hello hi hello good" string2 = string.replace("hello", "Nope") print(string2) # "Nope hi Nope good" string3 = str.. 2022. 3. 31.
파이썬(Python) - 딕셔너리(dictionary) 원소 검색/추가/삭제 딕셔너리(dictionary)의 구조 중괄호({ })로 감싸진 키(key)와 요소(value)의 1대1 매칭으로 구성됨 콜론을 기준으로 앞이 key, 뒤가 value값 아래의 dict의 key값 : 이름, 나이, 다루는 언어 dict = {"이름" : "홍길동", "나이" : 28, "다루는 언어" : ["Python", "Java"]} 각 key와 value 쌍은 쉼표(,)로 구분한다 key의 값이 겹칠경우 하나 외에는 모두 무시되므로 key는 중복X 하나의 key에 여러 값을 매칭하고 싶을 경우 value를 리스트형태로 지정할 수 있다. key값은 변하지 않는 값으로만 지정이 가능하다!! ex) 튜플형태는 가능하나 리스트는 불가능하다. 딕셔너리(dictionary) 검색 key값 조회 ( dict.k.. 2022. 3. 29.