본문 바로가기

반응형

Minding's Programming/Knowledge

[CS] 알고리즘의 복잡도 (시간 복잡도) 알고리즘의 복잡도는 알고리즘의 성능을 평가하는 중요한 척도 중 하나이다. 이 글에서는 시간 복잡도와 공간 복잡도 중 시간 복잡도에 대해서만 간단히 정리한다. 시간 복잡도알고리즘이 실행되는 데 걸리는 시간Big O 표기법을 사용하여 표현 ex) O(n), O(log n), O(n²) 등.입력 크기에 따른 연산 횟수의 증가율을 나타냄 예시O(1) - 상수 시간 복잡도: 연산 횟수가 입력 크기와 관계없이 일정한 경우def get_first_element(arr): return arr[0] if arr else None# 사용 예시print(get_first_element([1, 2, 3, 4, 5])) # 출력: 1 배열의 크기와 관계 없이 첫 번째 원소를 반환하는 함수이므로 일정하다.  O(n) - .. 더보기
[CS/Python] 자료구조 & 알고리즘 정리 - 선형 배열, 정렬, 탐색, 재귀, 순열 자료구조는 왜 알아야 하는가?ex) 리스트 내 최대값을 max() 함수를 통해 알아내고자 한다면, 리스트 전체 원소를 하나씩 읽어 비교하는 수 밖에 없다.즉, 위의 예시의 경우 리스트의 크기가 커질수록 시간은 비례적으로 많이 걸릴 수 밖에 없다는 뜻이다. 이런 경우 자료구조를 잘 활용한다면, 낭비되는 시간을 획기적으로 줄일 수 있다. 알고리즘이란? 프로그래밍에서의 알고리즘은 주어진 문제의 해결을 위한 자료구조와 연산 방법에 대한 선택을 뜻한다. 같은 문제가 주어지더라도 어떤 자료구조와 연산 방법을 사용하느냐에 따라 효율성의 크기가 달라질 수 있다. 자료구조와 알고리즘이 깊은 관계를 가지고 있는 것도 이런 이유 때문이다. 알고리즘의 '선택'에는 자료구조에 대한 이해가 필수적이다.  선형 배열 (Linear.. 더보기
[Linux/WSL] 간단한 리눅스 명령어 정리 리눅스에서 자주 쓰는 간단한 명령어들을 정리해 보았다. 명령어역할pwd현재 디렉토리 경로 출력ls현재 디렉토리의 파일 목록 출력 (숨김파일 및 자세히 표시: -al)cd디렉토리 변경 (cd만 단독 사용 시 홈 디렉토리로 이동)mkdir디렉토리 생성touch새로운 파일 생성rm파일 삭제 (디렉토리 포함: -r)cp파일 복사 (디렉토리 포함: -r)mv파일 이동 / 이름 변경tar파일/디렉토리를 압축 또는 압축해제(압축시: tar cvf / 해제시: tar xvf) 더보기
카카오톡 메시지로 긍/부정어 감정 분석해보기 (재미로 보는 야구팬들의 감정 분석) 내겐 '야구'라는 주제로 뭉친 친구들의 단체 카톡방이 있다. 여느 야구팬들이 보통 그렇듯이, 야구 경기를 보면서 희노애락의 이야기들을 나누곤 한다. 16년차 한화팬인 나는 올 시즌에도 기대에 못 미치는 경기력을 보며 한탄을 하던 도중 문득 궁금해졌다. '이겨도 져도 욕하는 야구라지만 성적이 좀 괜찮다면 욕을 좀 덜하지 않았을까?' 하는 생각을 가지고 가볍게 재미를 가지고 카카오톡 메시지를 통해 긍/부정어 분석을 진행해보았다. 필요한 라이브러리import pandas as pdimport torchfrom transformers import BertTokenizer, BertForSequenceClassificationfrom transformers import TextClassificationPipeli.. 더보기
[Windows10/WSL2/Zsh] Windows에 zsh 설치하기 Windows에 Linux(Ubuntu)를 설치한 이후 이를 잘 활용하기 위해 Zsh도 설치해보았다.Windows에서 Linux를 설치하는 방법은 아래 링크를 참고하자.[Windows10/WSL2] Windows 환경에서 Linux 사용을 위한 WSL2 설치 [Windows10/WSL2] Windows 환경에서 Linux 사용을 위한 WSL2 설치Windows 환경에서 Fastapi를 활용한 백엔드 개발을 위해 WSL2를 설치해보았다. 중간 중간 에러가 발생해 혹시 다른 PC나 노트북에서 새로 설치할 것을 대비해 글을 적는다. ** WSL2는 Windows 11 또는 Windowsminding-deep-learning.tistory.com ** 이 글에서는 ubuntu와 windows terminal이 .. 더보기
[Windows10/WSL2] Windows 환경에서 Linux 사용을 위한 WSL2 설치 Windows 환경에서 Fastapi를 활용한 백엔드 개발을 위해 WSL2를 설치해보았다. 중간 중간 에러가 발생해 혹시 다른 PC나 노트북에서 새로 설치할 것을 대비해 글을 적는다. ** WSL2는 Windows 11 또는 Windows 10 21H2 버전 이상이어야만 설치가 된다는 점 참고. 1. Linux용 Windows 하위 시스템 사용 및 가상화 사용Windows 검색 또는 [제어판] - [프로그램 및 기능] - [Windows 기능 켜기/끄기]로 진입해 아래 3가지에 대해 체크해준다. Linux용 Windows 하위 시스템Windows 하이퍼바이저 플랫폼가상 머신 플랫폼(하단 2개는 당장 하지 않아도 되나 추후 "가상 머신 플랫폼 Windows 기능을 ~ 확인하세요"와 같은 오류가 나올 수 있.. 더보기
[Python] OpenCV를 이용해 자동 카톡 메시지 보내기 살다보면 한번 쯤 여러 사람, 여러 그룹에 같은 메시지를 보내야 할 때가 있다(청첩장이라던가... 마케팅 일을 한다던가..). 그러나 그 양이 만만치 않다면 메시지를 복사 붙여넣기 하는 것마저 부담스러운 일이 된다. 이런 일을 대비해 같은 내용의 메시지를 여러 채팅방에 자동으로 보내주는 프로그램을 만들어보기로 했다. 업무자동화의 대표주자인 Python과 화면 인식에 능한 OpenCV 등을 이용하면 어렵지 않게 만들 수 있다. 필요한 라이브러리 opencv-python == 4.5.3.56 (다른 버전을 써도 무관하다.) pyperclip pyautogui 모두 pip install 명령어를 통해 설치하면 된다. pip install opencv-python pip install pyperclip pip .. 더보기
[LLAMA2] LLAMA2 Custom Data로 학습시켜보기 (무료 Colab 사용) Meta의 대규모 언어 모델인 LLAMA2를 Custom Data로 학습시키는 쉬운 방법이 있다고 해서 따라해봤다. LLAMA2 fine tuning을 위한 패키지 다운로드 https://github.com/huggingface/autotrain-advanced GitHub - huggingface/autotrain-advanced: 🤗 AutoTrain Advanced 🤗 AutoTrain Advanced. Contribute to huggingface/autotrain-advanced development by creating an account on GitHub. github.com autotrain-advanced 패키지를 통해 딥러닝 모델을 쉽게 학습시킬 수 있다. 코드 한 줄로도 가능하다! #.. 더보기

728x90