Python 28

[알고리즘] 정렬 알고리즘② - 재귀, 퀵 정렬(Quick), 병합 정렬(Merge)

[알고리즘] 정렬 알고리즘 - 버블정렬(Bubble), 선택정렬(Selection), 삽입정렬(Insertion)[파이썬 자료구조와 알고리즘] 시간 복잡도, 빅오 표기법(자료구조, 정렬 알고리즘의 시간 복잡프로그램을 개발할때에는 같은 결과를 만들어 내는 코드라도 실행 속도는 천차만별이다. 예를 들sdesign416.tistory.com 이 전 글에선 정렬중에서도 안정 정렬에 해당하는 삽입 정렬, 버블 정렬, 병합 정렬을 보았다.이번 글에서는 안정 정렬인 병합정렬과, 불안정 정렬인 퀵 정렬에 대해 살펴 볼 예정이다. 💡 안정 정렬(Stable Sort) 이란?정렬 후에도 값이 같은 원소들의 순서가 그대로 유지되는 정렬 방식이다.※ 원래 순서 : 정렬 전의 상대적인 위치1. 재귀 함수(Recursive F..

[알고리즘] 정렬 알고리즘① - 버블정렬(Bubble), 선택정렬(Selection), 삽입정렬(Insertion)

[파이썬 자료구조와 알고리즘] 시간 복잡도, 빅오 표기법(자료구조, 정렬 알고리즘의 시간 복잡프로그램을 개발할때에는 같은 결과를 만들어 내는 코드라도 실행 속도는 천차만별이다. 예를 들어 특정 데이터를 찾을 때처음부터 끝까지 순서대로 하나씩 확인하는 방법이 있고,정렬된 데이sdesign416.tistory.com정렬 알고리즘(Sorting Algorithm)이란?정렬 알고리즘은 무작위로 나열되어 있는 데이터를특정 기준(오름차순 또는 내림차순)에 따라 순서대로 재배열하는 알고리즘을 말한다.정렬 알고리즘을 사용하여데이터를 효율적으로 탐색하고 관리할 수 있다. 정렬 알고리즘엔 버블 정렬, 선택 정렬, 삽입 정렬, 합병 정렬, 퀵 정렬, 힙 정렬이 있고이는 비교 정렬에 포함되며, 비교하지 않는 정렬에는 계수 정..

[Python MySQL] MySQL을 활용한 단어장 프로그램 만들기

[Python MySQL] Python에서 MySQL 연결하고 데이터 조회, 추가하기Python 설치부터 VSCode, Jupyter, venv설정까지파이썬을 시작하기 앞서가장 중요한 것은 개발환경 설정이다. Python 설치, VSCode 확장 프로그램, venv 가상환경까지 한 번에 등장하다보니각 역할이 무엇인sdesign416.tistory.com 프로그램을 만들 기 전,SQL 데이터베이스에 voca테이블을 만들고 시작한다.create table voca( eng varchar(50) primary key, kor varchar(50) not null, lev int default 1);프로그램 설명프로그램 전체 코드는 MySQL을 활용한 단어장_최종.iptnb 파일을 확인!아래 실..

Python/Database 2026.06.09

[Python MySQL] 회원가입, 로그인, 회원정보 수정, 회원 탈퇴 프로그램 만들기

https://sdesign416.tistory.com/44 [Python MySQL] Python에서 MySQL 연결하고 데이터 조회하기Python 설치부터 VSCode, Jupyter, venv설정까지파이썬을 시작하기 앞서가장 중요한 것은 개발환경 설정이다. Python 설치, VSCode 확장 프로그램, venv 가상환경까지 한 번에 등장하다보니각 역할이 무엇인sdesign416.tistory.com1) 회원가입 프로그램 만들기 (INSERT)정보는 input함수로 입력받는다.반복문을 사용하여 여러 회원을 가입받을 수 있도록 한다.추가 가입 여부를 물은 후 y를 입력 시 추가 회원가입을 진행한다.1_1) 기본 조건 # 데이터베이스 사용 선언import MySQLdb # 데이터베이스 연결db = My..

Python/Database 2026.06.09

[Python MySQL] Python에서 MySQL 연결하고 데이터 조회, 추가하기

Python 설치부터 VSCode, Jupyter, venv설정까지파이썬을 시작하기 앞서가장 중요한 것은 개발환경 설정이다. Python 설치, VSCode 확장 프로그램, venv 가상환경까지 한 번에 등장하다보니각 역할이 무엇인지 정확히 알아야 할 필요가 있다.1. Pythonsdesign416.tistory.com위 글을 참고하여터미널 cmd로 설정 후 venv 생성 후 아래 내용 실행 [MySQL] 서브쿼리(Sub Query) - 단일행, 다중행, 스칼라, 인라인 뷰서브쿼리는 SQL문 안에 들어가는 또 다른 SELECT문이다.메인쿼리에 종속되어 있어 메인쿼리 없이 단독적으로 실행될 수 없으며서브쿼리는 메인쿼리의 컬럼을 사용할수는 있지만반대로 메인쿼리sdesign416.tistory.comSQL에..

Python/Database 2026.06.09

[자료구조] 힙(Heap)- 힙 동작과정, 힙의 시간복잡도, 파이썬 코드로 구현하기

[파이썬 자료구조] 트리(Tree), 이진 트리(Binary Tree), 트리 순회파이썬 공부를 하다보면 데이터를 단순히 순서대로 저장하는것 뿐만 아니라데이터간의 관계를 표현해야하는 상황도 발생한다. 예를 들어 컴퓨터의 폴더 구조, 회사의 조직도처럼 부모-자식 관sdesign416.tistory.com [파이썬 자료구조와 알고리즘] 시간 복잡도, 빅오 표기법프로그램을 개발할때에는 같은 결과를 만들어 내는 코드라도 실행 속도는 천차만별이다. 예를 들어 특정 데이터를 찾을 때처음부터 끝까지 순서대로 하나씩 확인하는 방법이 있고,정렬된 데이sdesign416.tistory.com힙(Heap)이란?힙은 완전 이진 트리를 기반으로 한 자료구조이다.각 노드가 자식 노드보다 작거나 같은(최소 힙) 또는크거나 같은(최..

[자료구조와 알고리즘] 공간 복잡도

[파이썬 자료구조와 알고리즘] 시간 복잡도, 빅오 표기법프로그램을 개발할때에는 같은 결과를 만들어 내는 코드라도 실행 속도는 천차만별이다. 예를 들어 특정 데이터를 찾을 때처음부터 끝까지 순서대로 하나씩 확인하는 방법이 있고,정렬된 데이sdesign416.tistory.com공간 복잡도란?공간 복잡도는 입력 크기에 따라 알고리즘이 추가로 필요해하는 메모리의 증가량을 나타낸것이다.다시말해, 알고리즘이 프로그램을 실행하여 완료하는데까지 필요로 하는 총 메모리 공간의 양이다. 보통 공간 복잡도는 보조공간을 의미하고있다.※ 보조 공간 : 입력 자체를 담아두는 메모리를 제외한 알고리즘이 따로 쓰는 메모리※ 총 공간 = 입력 공간 + 보조 공간1) 고정공간과 가변공간공간 복잡도는 프로그램 실행 시 고정적으로 필요한..

[자료구조] 해시 테이블(Hash Table), 해시 함수, 해시 충돌, 해결방법

해시 테이블은 key와 value를 저장하는 자료구조로Python의 딕셔너리는 내부적으로 해시 테이블 구조를 사용한다. 데이터를 저장할 위치를 해시 함수(Hash Function)로 계산하기 때문에,평균적으론 O(1)의 시간복잡도를 가진다.※ 시간복잡도 설명 보러가기💡 해시 테이블 언제 사용할까?1000개의 책이 있는 도서관에서 책을 찾는 상황으로 비교하는 예시 👎 일반적인 배열, 리스트를 사용할 때"첫번째 칸부터 순서대로 다 뒤져보자" 라는 식으로 찾게되는데운이 좋으면 맨 앞에서 찾을수도 있지만,최악의 경우 1000번을 모두 다 확인해서 책을 찾아야한다. (시간 복잡도 : O(n)) 👍 해시 테이블 사용할 때도서 검색대에 찾고싶은 책이름을 검색했을 때,몇층 몇구역 몇번대 라고 해당 위치가 바로 ..

[자료구조와 알고리즘] 시간 복잡도, 빅오 표기법

프로그램을 개발할때에는 같은 결과를 만들어 내는 코드라도 실행 속도는 천차만별이다. 예를 들어 특정 데이터를 찾을 때처음부터 끝까지 순서대로 하나씩 확인하는 방법이 있고,정렬된 데이터를 활용해서 훨씬 빠르게 찾아내는 방법도 있다. 데이터의 개수가 적을때는 큰 차이를 못느끼지만,수백개, 수만개의 데이터를 처리하게 되면 알고리즘의 성능 차이는 매우 극명하게 나타난다. 이때 알고리즘의 성능 분석을 하기 위해 사용되는 개념이 시간 복잡도이다.시간 복잡도란?시간 복잡도는 프로그램이 실행될 때 걸리는 시간을입력 크기에 따라 나타낸 것이다. 여기서 말하는 시간은 실제 시간(몇시, 몇분, 몇초)를 뜻하는게 아니라프로그램이 실행되면서 수행되는 연산의 횟수를 말하는 것이다. 쉽게 말해 시간 복잡도는'데이터가 많아졌을 때 ..

[자료구조] 트리(Tree), 이진 트리(Binary Tree), 트리 순회

파이썬 공부를 하다보면 데이터를 단순히 순서대로 저장하는것 뿐만 아니라데이터간의 관계를 표현해야하는 상황도 발생한다. 예를 들어 컴퓨터의 폴더 구조, 회사의 조직도처럼 부모-자식 관계를 가지는 데이터는 일반적인 배열이나 연결리스트로 표현하는데 어려움이 있다. 이때 트리(Tree) 자료구조를 사용할 수 있다.트리(Tree)란?트리(Tree)는 데이터를 계층 구조로 저장하고 관리할 수 있는 자료구조이다. 이름 그대로 트리를 생각하면 쉽다.나뭇가지가 뻗어나가는 것 처럼, 시작점에서 여러 방향으로 데이터가 연결되는 방식이다. 부모-자식 관계를 통해 데이터를 표현하는 방식으로계층적인 데이터를 표현할 때 많이 사용되고 있는 자료구조이다.트리의 구조노드(Node) : 트리를 이루고있는 각각의 값루트(Root) : 가..