2025/02 53

Basic Operators (기본 연산자)

✅ Basic Operators (기본 연산자) Python에서는 다양한 연산자를 활용하여 수학적 계산, 비교, 논리 연산 등을 수행할 수 있습니다. 이번 글에서는 Python에서 자주 사용하는 기본 연산자를 한눈에 정리해 보겠습니다! 1️⃣ 산술 연산자 (Arithmetic Operators)Python에서 기본적인 사칙연산 및 기타 수학 연산을 수행할 때 사용됩니다.연산자설명예제결과+덧셈5 + 38-뺄셈5 - 32*곱셈5 * 315/나눗셈5 / 22.5//몫 연산5 // 22%나머지 연산5 % 21**거듭제곱5 ** 225 ✅ 예제 코드x, y = 10, 3print(x + y) # 13print(x - y) # 7print(x * y) # 30print(x / y) # 3.333...prin..

Time Complexity Calculation (시간 복잡도 계산)

1️⃣ 기본적인 시간 복잡도 계산 방법 (반복문 중심)  ✅ 시간 복잡도를 계산하는 일반적인 방법론시간 복잡도(Time Complexity)는 알고리즘이 실행되는 데 걸리는 시간을 입력 크기(n)에 대한 함수로 나타낸 것입니다.시간 복잡도를 분석하는 방법은 크게 두 가지로 나눌 수 있습니다.기본적인 반복문을 포함한 경우 (반복문 분석)재귀 함수가 포함된 경우 (재귀 분석) ① 단일 루프 → O(n) for i in range(n): print(i)  i는 0부터 n-1까지 증가 → n번 반복시간 복잡도: O(n)   ② 중첩 루프 (이중 루프) → O(n²)for i in range(n): for j in range(n): print(i, j) i가 n번 실행될 때마다 ..

Python Algorithm 2025.02.16

Selection Sort (선택 정렬)

✅ Selection Sort (선택 정렬)  선택 정렬(Selection Sort)은 가장 작은(또는 큰) 값을 선택하여 정렬하는 알고리즘입니다.배열에서 가장 작은 값을 찾아 첫 번째 값과 교환, 그다음 두 번째로 작은 값을 찾아 두 번째 값과 교환하는 방식으로 진행됩니다.이 과정을 반복하면 배열이 정렬됩니다. 항목설명알고리즘 이름Selection Sort (선택 정렬)시간 복잡도최선: O(n²), 평균: O(n²), 최악: O(n²)공간 복잡도O(1) (추가적인 메모리 사용 없음, 제자리 정렬)알고리즘 설명주어진 리스트에서 가장 작은 값을 찾아 맨 앞의 값과 교환하는 방식으로 정렬특징단순한 구조, 작은 데이터에 적합, 안정 정렬이 아님적용 예시데이터 개수가 적고, 추가 메모리를 쓰기 어려운 환경  ✅..

Matrix Control (행렬 조작법)

✅ Matrix Control (행렬 조작법) 2차원 리스트(2D List)는 행(Row)과 열(Column)으로 구성된 리스트로, 표 형태의 데이터를 저장하는 데 사용됩니다.반복문으로 쉽게 순회할 수 있으며, 리스트 컴프리헨션을 활용하면 간결하게 생성 가능합니다.전치(Transpose)를 활용하면 행과 열을 변경할 수 있으며, zip() 또는 numpy를 이용하면 더욱 효율적입니다.  ✅ 행렬 순회 방법 # 행 기준 순회matrix = [ [1, 2, 3], [4, 5, 6], [7, 8, 9]]# 각 행을 출력for row in matrix: print(row)# 출력:# [1, 2, 3]# [4, 5, 6]# [7, 8, 9] #행,열 순회for row in matrix: ..

Matrix, 2D List (2차원 리스트)

✅ Matrix, 2D List (2차원 리스트) 2차원 리스트는 리스트 안에 리스트를 포함한 형태로 행(row)과 열(column) 을 가지는 자료구조입니다. 주로 행렬(Matrix) 또는 표(Table) 형태의 데이터를 저장할 때 사용됩니다. 특징설명리스트 안에 리스트 포함[ [1, 2], [3, 4] ] 형태행과 열로 요소 접근 가능matrix[row][col]중첩 반복문 활용 가능for row in matrix: for col in row:동적 크기 조정 가능행과 열을 추가/삭제할 수 있음 ✅ 2차원 리스트 생성 및 접근&변경# 3x3 2차원 리스트 생성matrix = [ [1, 2, 3], [4, 5, 6], [7, 8, 9] ]print(matrix)# 출력: [[1,..

List(리스트)

✅ List(리스트)리스트(List)는 여러 개의 데이터를 하나의 변수에 저장할 수 있는 자료형입니다. 파이썬에서 가장 많이 사용되는 자료구조 중 하나로, 변경 가능(mutable) 하고 다양한 데이터 타입을 포함할 수 있습니다. 특징설명순서가 있다리스트는 순서가 있는 데이터 구조(Ordered)입니다.변경 가능리스트의 요소를 변경, 추가, 삭제할 수 있습니다.여러 자료형 저장 가능숫자, 문자열, 리스트 등 다양한 데이터 타입을 포함할 수 있습니다.인덱싱과 슬라이싱 가능리스트 요소에 인덱스로 접근할 수 있으며 일부를 추출할 수도 있습니다. ✅ 리스트 생성 방법# 빈 리스트 생성empty_list = []# 정수형 리스트numbers = [1, 2, 3, 4, 5]# 문자열 리스트words = ["appl..

Greedy Algorithm(그리디 알고리즘)

✅ Greedy 알고리즘 (Greedy Algorithm)  Greedy 알고리즘은 매 단계에서 현재 상황에서 가장 좋아 보이는 선택을 하는 방식으로 문제를 해결하는 알고리즘입니다. 즉, 국소 최적해(local optimum)를 구하는 방식으로, 이를 통해 전체 최적해(global optimum)를 찾고자 합니다. Greedy 알고리즘은 직관적이고 빠르게 구현할 수 있지만, 모든 문제에 대해 최적의 해를 보장하지는 않습니다. 하지만 특정 유형의 문제에서는 매우 효율적이고 정확한 결과를 낼 수 있습니다. 항목내용알고리즘 정의각 단계에서 가장 좋은 선택을 하여 문제를 해결하는 방식특징1. 직관적이고 간단한 구현 2. 최적해 보장 안 됨 3. 빠른 실행 속도시간 복잡도보통 O(n log n) 또는 O(n) 정..

Python Algorithm 2025.02.15

Burte-Force Search (완전탐색)

✅ 완전탐색 (Brute Force Search)완전탐색(Brute Force Search)은 주어진 문제의 가능한 모든 경우의 수를 모두 탐색하여 정답을 찾아내는 알고리즘입니다. 모든 경우를 검토하므로, 해결책을 반드시 찾을 수 있지만, 경우의 수가 많을 경우 실행 시간이 급격히 증가하는 단점이 있습니다.완전탐색은 매우 직관적이고 간단한 접근 방식으로, 작은 문제나 계산량이 적은 경우에 유용하지만, 입력 크기가 커지면 비효율적입니다.항목내용알고리즘 정의가능한 모든 경우의 수를 다 확인하는 방식특징1. 간단한 구현 2. 항상 정답을 찾을 수 있음 3. 비효율적시간 복잡도O(n!) 또는 O(2^n), 경우의 수에 비례적합한 경우작은 문제나 다른 방법이 없을 때 유용단점입력 크기가 커질수록 시간이 급격히 증..

Python Algorithm 2025.02.15

Counting Sort(카운팅 정렬)

✅ Counting Sort(카운팅 정렬)시간 복잡도: O(n + k) 카운팅 정렬(Counting Sort)은 정수나 범위가 제한된 값을 정렬할 때 매우 효율적인 알고리즘입니다. 특히 값이 작고 범위가 제한적일 때 매우 빠르게 동작합니다. 카운팅 정렬은 비교 기반 정렬 알고리즘이 아니며, 대신 각 숫자의 등장 횟수를 세는 방식으로 정렬을 수행합니다.항목내용알고리즘 이름카운팅 정렬 (Counting Sort)시간 복잡도O(n + k)공간 복잡도O(k)정렬 방식비교 기반 정렬이 아닌 빈도수 기반 정렬사용 사례정수 값이나 작은 범위의 값들을 정렬할 때 유용장점- 매우 빠른 속도 (특히 값의 범위가 작을 때) - 안정적인 정렬단점- 값의 범위가 너무 크면 비효율적 - 공간 복잡도 문제 발생  ✅ 카운팅 정렬 ..

Bubble Sort (버블 정렬)

✅ Bubble Sort (버블 정렬)평균 시간복잡도 : O(n2)   버블 정렬(Bubble Sort)은 가장 간단한 정렬 알고리즘 중 하나로, 주어진 리스트에서 인접한 두 원소를 비교하고 교환하면서 정렬하는 방식입니다. 이름 그대로 버블(bubble)처럼, 가장 큰 수가 차례차례 리스트의 끝으로 "떠오르는" 모습을 비유하여 붙여졌습니다. 항목설명알고리즘 유형비교 기반 정렬시간 복잡도최악: O(n^2) 최선: O(n) 평균: O(n^2)공간 복잡도O(1)안정성안정적인 정렬적용데이터가 적고, 이미 정렬된 경우 최적화 가능단점큰 데이터에서 비효율적, O(n2)O(n^2)O(n2) 시간 복잡도 ✅버블정렬 특징버블 정렬의 동작 원리는 크게 반복문을 통한 비교와 교환으로 이루어집니다. 각 단계에서 가장 큰 수가..