인공지능 개발자 수다(유튜브 바로가기) 자세히보기
반응형

파이썬 12

Pyenv로 Python 설치하고 가상환경 만들기

1. Pyenv 설치1.1. 윈도우 (Window)Git에서 Pyenv를 설치하는 명령어를 받을 수 있다. (링크)Power shell 에서 명령어를 입력한다.Invoke-WebRequest -UseBasicParsing -Uri "https://raw.githubusercontent.com/pyenv-win/pyenv-win/master/pyenv-win/install-pyenv-win.ps1" -OutFile "./install-pyenv-win.ps1"; &"./install-pyenv-win.ps1"  1.2. Mac os pyenv 설치 명령어brew install pyenv 2. pyenv 버전 관리pyenv 버전확인pyenv --versionpyenv 업데이트 (Mac OS)brew upgr..

[Poetry] 파이참(Pycharm)에 Poetry 세팅

0. Pyenv 설치Poetry는 Pyenv 와 함께 사용하면 좋아요.Pyenv를 이용해 원하는 Python 버전을 설치합니다.설치 방법은 이전 글에서 확인하세요 : Pyenv로 Python 설치하기1. Poetry 설치poetry 설치 명령어는 아래와 같다.pip install poetry  2. Poetry Pycharm 연동먼저 Pycharm에서 새로운 인터프리터를 추가해 준다오른쪽 하단에 Python을 클릭새 인터프리터 추가 클릭왼쪽에서 Poetry Environment(Poetry 환경)를 선택해 준다.그리고 한번 더 Poetry Environment(Poetry 환경)를 선택해 준다.그리고 Base interpreter에서 필요한 python 버전을 선택한다. (Pyenv에서 설치한 파이썬 버..

[conda env] conda 가상환경 만들기, 파이썬 설치하기

1. conda 버전 관리conda 버전 확인conda --version버전 업데이트conda update conda2. conda 가상환경사용 가능한 파이썬 버전 확인conda search python가상환경 생성conda create -n python=3.12# 예시conda create -n my_env python=3.12생성한 가상환경 리스트 확인conda env list가상환경 이동conda activate # 예시conda activate my_env가상환경 벗어나기conda deactivate

[알고리즘] 정렬 (버블, 선택, 삽입, 병합, 퀵)

1. 버블정렬 (Bubble Sort)인접한 두 요소를 비교하여 필요에 따라 위치를 바꾸면서 리스트를 정렬하는 방법입니다. 버블 정렬은 여러 번의 패스를 통해 리스트를 정렬하며, 각 패스에서 가장 큰 요소가 리스트의 끝으로 이동합니다. 이 과정은 마치 "거품이 위로 올라가는" 모습과 비슷해서 버블 정렬이라고 불립니다. 최악의 경우 시간 복잡도: O(n^2) (리스트가 역순으로 정렬된 경우) 최선의 경우 시간 복잡도: O(n) (리스트가 이미 정렬된 경우, 이 경우는 최적화된 버블 정렬에서만 적용됩니다) 평균 시간 복잡도: O(n^2)1.1. 버블 정렬의 작동 원리리스트의 첫 번째 요소부터 시작하여 인접한 두 요소를 비교합니다.두 요소가 올바른 순서(오름차순 정렬의 경우 작은 값이 앞에, 큰 값이 뒤에)라..

[자료구조] 그래프

1. 그래프의 구성그래프는 노드(Node)와 노드를 연결하는 간선(Edge)으로 구성됩니다.노드(Node): 그래프 내에서 개별적인 데이터간선(Edge): 노드 간의 관계나 경로2. 그래프의 종류2.1. 방향 그래프(Directed Graph, Digraph)간선에 방향이 있어서 한 노드에서 다른 노드로의 일방향 경로만을 나타냅니다.defaultdict란?존재하지 않는 키를 조회할 때 KeyError를 발생시키는 대신, 기본값을 반환하도록 할 수 있습니다.키가 존재하지 않으면 기본값으로 초기화된 후 사용from collections import defaultdictclass DirectedGraph: def __init__(self): # defaultdict를 사용하여 인접 리스트로 ..

[자료구조] 트리

1. 트리의 기본 개념노드(Node): 트리의 기본 구성 요소로, 데이터를 포함.루트(Root): 트리의 최상위 노드.간선(Edge): 두 노드를 연결하는 선.부모 노드(Parent Node): 다른 노드를 가리키는 노드.자식 노드(Child Node): 부모 노드에 의해 가리켜지는 노드.리프 노드(Leaf Node): 자식 노드가 없는 노드.서브트리(Subtree): 트리의 일부로, 특정 노드를 루트로 하는 트리.깊이(Depth): 루트 노드에서 특정 노드까지의 경로 길이.높이(Height): 특정 노드에서 리프 노드까지의 가장 긴 경로.2. 트리의 종류모든 트리의 종류를 다 공부하기에는 양이 많으니, 중요한 트리만 보고 넘어가기로 하자.이진 탐색 트리(Binary Search Tree): 기본적인 트..

[자료구조] 스택(Stack) 큐(Queue) 해시테이블(Hash Table)

파이썬에서는 이미 구현되어있다.클래스와 함수명을 외우기만 하면 된다!!!!1. 스택 (Stack)파이썬에서 스택은 리스트를 사용하여 쉽게 구현할 수 있습니다. 스택은 LIFO (Last In, First Out)의 원칙을 따르는 선형 자료구조입니다. 즉, 가장 나중에 추가된 요소가 가장 먼저 제거됩니다. 스택의 주요 연산은 다음과 같습니다.push: 스택의 맨 위에 요소를 추가합니다. - append()pop: 스택의 맨 위 요소를 제거하고 그 값을 반환합니다. - pop()peek/top: 스택의 맨 위 요소를 조회합니다. - ls[-1]isEmpty: 스택이 비어 있는지 확인합니다. - not ls # 비어있으면 Truestack = []stack.append(1) # 스택에 1을 pus..

[파이썬] 병렬처리(multi-threading, multi-processing)

1. 병렬처리를 하는 이유 프로그램의 실행 속도를 향상 여러 작업을 동시에 처리할 수 있음 2. 멀티스레딩 (Multi - Threading) 2.1. 쓰레드 설명 쓰레드는 프로세스 내에서 실행되는 실행 단위 같은 메모리 공간을 공유 입출력 작업이 많은 시나리오에서 유리 파이썬에서는 `threading` 모듈 사용 멀티스레딩은 자원을 공유해야 하거나 I/O 바운드 작업(I/O-intensive tasks)이 중심이 될 때 효과적. (대량의 데이터를 디스크에서 읽거나 쓰거나, 네트워크를 통해 데이터를 송수신하는 작업을 포함합니다.) 메모리 공유로 인해 데이터 동기화 문제가 발생할 수 있다. 한 스레드의 실패가 전체 프로세스에 영향을 줄 수 있습니다. 2.2. threading 모듈 사용법 쓰레드 생성과 실..

[자료구조] 문자열 (파이썬)

이번시간에는 문자열 사용방법에 대해 알아봅시다. 문자열도 마찬가지로 코딩테스트에서는 빠르게 처리할 수 있는 능력이 필요하다. (오래 걸리면 곤란하다) 1. 문자열 선언과 초기화 # 문자열을 선언하고 초기화하는 여러 방법 string1 = "안녕하세요" string2 = '코딩 테스트 준비 중입니다' string3 = """여러 줄에 걸쳐 문자열을 작성할 때는 이렇게 작성할 수 있습니다.""" # 출력해보기 print(string1) print(string2) print(string3) 2. 문자열 인덱싱과 슬라이싱 문자열의 슬라이싱도 마찬가지로 시작 인덱스는 포함하지만 마지막 인덱스는 포함하지 않는 것을 주의한다. 그리고, 음수를 사용할 때에는 시작 인덱스는 마찬가지로 포함 마지막 인덱스를 포함한다. (..

[자료구조] 배열 (파이썬이에서는 리스트)

시작하기 전에... 코딩테스트를 준비하면서 리스트가 뭔지 아는 수준이면, 곤란하다. 자주 사용하는 기법을 반드시 외워두고 사용하는 것이 좋겠다. 특히 함수 사용 이후 반환된 값이 어떠한 형식인지 (list 형식인지, None 값인지, int/float/str 값인지) 반드시 알아두는 것이 좋겠다. 특히 in-place 형식의 수정인지 알아 두는 것은 중요하다. 1. 리스트 생성 # 리스트 생성 numbers = [1, 2, 3, 4, 5] 2. 리스트에 값 추가 (append, insert, exend, +) append 리스트에 값 추가 In-place 수정 (함수사용시 리스트에 바로 추가됨) value = 6 numbers.append(value) print(numbers) # [1, 2, 3, 4,..

반응형