Skip to content

Commit df79fbd

Browse files
committed
docs: upload new post 25-12-12
1 parent d0b7332 commit df79fbd

3 files changed

Lines changed: 149 additions & 1 deletion

File tree

_posts/2025-12-12-algo-ch6-1.md

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
---
2+
title: "[파이썬 알고리즘] Ch 6-1. 기수 정렬(Radix Sort)"
3+
date: 2025-12-12 19:21:00 +0900
4+
categories: [algorithm]
5+
tags: [python, programming, coding, radix, sort, radix sort, 정렬, 비교 기반 정렬, 배분 기반 정렬]
6+
comments: true
7+
math: true
8+
toc: true
9+
#pin: true
10+
#image:
11+
#path: thumbnail.png
12+
#alt: image alternative text
13+
---
14+
15+
지금까지 다루었던 정렬 방법들은 모두 <u>배열의 요소들을 서로 비교하여 정렬</u>하였다. 그런데 이러한 비교 연산을 사용하지 않고도 데이터를 정렬할 수 있는 독특한 정렬 기법들이 있다.
16+
17+
> **<비교 기반의 정렬(Comparsion based sorting)>**
18+
> - 요소들 끼리 비교하는 것에 기반한 정렬 알고리즘이다.
19+
> - 입력 값의 종류에 대한 제한이 없다.
20+
> - <u>최소 비교 횟수의 이론적 하한(Lower bound)</u>이 존재하는데 이는 어떤 비교 정렬 알고리즘이라도 $O(n log_{2}n)$시간이 소요된다는 것을 의미한다.
21+
> - 버블 정렬, 선택 정렬, 삽입 정렬, 힙 정렬, 병합 정렬, 퀵 정렬이 있다.
22+
23+
> **<배분 기반의 정렬(Distributiom-based sorting)>**
24+
> - 값의 범위나 특성을 기반으로 메모리에 나누어 분류하는 방식의 정렬 알고리즘이다.
25+
> - 입력의 종류에 대한 제한이 있다.
26+
> - 추가적인 메모리가 필요하다.
27+
> - 비교 기반 정렬의 이론적 하한(Lower bound)보다 더 빠른 정렬이 가능하다.
28+
> - 기수 정렬, 카운팅 정렬, 버킷 정렬이 있다.
29+
30+
31+
32+
33+
Lines changed: 115 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,115 @@
1+
---
2+
title: "[Anaconda] Jupyter Notebook 가상환경 설정"
3+
date: 2025-12-12 19:02:00 +0900
4+
categories: [setup]
5+
tags: [anaconda, anaconde prompt, jupyter notebook, kernel, programming]
6+
comments: true
7+
math: true
8+
toc: true
9+
#pin: true
10+
#image:
11+
#path: thumbnail.png
12+
#alt: image alternative text
13+
---
14+
15+
파이썬에서 프로젝트를 진행할 때는 각각의 프로젝트 별로 **가상환경**을 만들어서 진행해주는 것이 좋다.
16+
Anaconda prompt에서 conda 명령어를 통해 Python 가상환경을 Jupyter notebook 커널로 추가하거나 삭제하는 방법을 알아보자.
17+
18+
19+
## **1. 가상환경 생성하기**
20+
conda 명령어로 venv1이라는 이름의 pyhton 3.8 버전을 사용하는 가상환경을 생성한다.
21+
```bash
22+
conda create -n venv1 python=3.8
23+
```
24+
<br>
25+
26+
## **2. 가상환경 활성화 하기**
27+
앞에서 생성한 venv1를 활성화 한다.
28+
```bash
29+
conda activate venv1
30+
```
31+
<br>
32+
33+
## **3. ipykernel 설치하기**
34+
ipykernel을 설치한다.
35+
```bash
36+
pip install ipykernel
37+
```
38+
<br>
39+
40+
## **4. 커널 추가하기**
41+
앞에서 설치한 ipykernel을 이용해서 가상환경 venv1을 jupyter notebook의 커널로 추가한다.
42+
```bash
43+
python -m ipykernel install --user --name=venv1
44+
```
45+
<br>
46+
47+
## **5. 기타 명령어**
48+
anaconda 가상환경 리스트 확인
49+
```bash
50+
conda env list
51+
```
52+
53+
anaconda 가상환경 실행
54+
```bash
55+
conda [env_name] activate
56+
```
57+
58+
anaconda 가상환경 종료
59+
```bash
60+
conda [env_name] deactivate
61+
```
62+
63+
jupyter notebook에 추가된 커널 목록을 확인
64+
```bash
65+
jupyter kernelspec list
66+
```
67+
68+
jupyter notebook에 추가된 커널 삭제
69+
```bash
70+
jupyter kernelspec uninstall [kernel_name]
71+
```
72+
<br>
73+
74+
## **6. 궁금한 점**
75+
> **Q.가상환경을 만들어서 사용하는 이유는 무엇인가?**
76+
> - 프로젝트마다 필요로 하는 라이브러리 버전이 다르다.
77+
> - "의존성 충돌(Dependency Conflict)"을 방지하기 위함이다.
78+
> - 프로젝트의 독립성 확보
79+
80+
81+
> **Q. 커널(kernel)이란?**
82+
> - 운영체제의 핵심 부분으로, 컴퓨터의 <u>하드웨어와 소프트웨어 사이를 연결</u>해주는 중추 시스템이다.
83+
> - 프로그램이 CPU, 메모리, 저장장치, 네트워크 등 하드웨어를 직접 건드리지 못하도록 커널이 대신 중재하고 관리한다.
84+
85+
86+
> **Q. jupyter notebook에 가상환경 커널을 추가하는 이유는 무엇인가?**
87+
> - 커널을 추가하는 이유는 가상환경을 생성한 커널의 이동을 빠르게 하기 위해서이다.
88+
> ![image](https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2F1XdLD%2FbtrTQ1MrKUR%2FAAAAAAAAAAAAAAAAAAAAALb661iDzs56vycHf83tbp9hhgwBVxZfJE7vv9KhVaFG%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1767193199%26allow_ip%3D%26allow_referer%3D%26signature%3DNFdp11CWDodwNKrkOAgZEPGViq8%253D)
89+
>
90+
> **e.g. project_A 가상환경에서 작업 중인데 project_B 가상환경의 코드를 수정해야 하는 경우가 발생한다면?**
91+
> 1. 커널 추가하지 않은 경우
92+
> step 1. project_A 가상환경 비활성화
93+
> step 2. project_B 가상환겨 활성화
94+
> step 3. project_B의 jupyter notebook 실행
95+
> step 4. project_B 가상환경의 수정할 파일 실행
96+
> step 5. 코드 수정
97+
>
98+
> 2. 커널 추가 한 경우
99+
> step 1. project_B 가상환경의 수정할 파일 실행
100+
> step 2. jupyter notebook 내 커널 변경
101+
> step 3. 코드 수정
102+
>
103+
> <mark>
104+
> 따라서, jupyter notebook 가상환경을 이용한 작업 시 kernel을 추가해두면 수정이 편리하다..!
105+
> </mark>
106+
107+
108+
109+
110+
111+
112+
113+
114+
115+

_posts/2025-12-12-first.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
title: "Hello World!"
3-
date: 2025-12-12 16:38:00 +/-TTTT
3+
date: 2025-12-12 16:38:00 +0900
44
categories: [blog]
55
tags: [jekyll, chirpy, blog, git, github, github blog, github Pages, velog]
66
comments: true

0 commit comments

Comments
 (0)