반응형

TIL/Python 32

[TIL] pathlib 로 디렉토리 내 파일 총합 구하기 w/ Python

Python 의 pathlib 모듈을 활용해 디렉토리 내 파일 목록을 탐색하고각 파일의 크기를 계산해 총 용량을 구하는 프로그램을 작성해봤다 pathlib 내의 Path 클래스는 파일이나 폴더 경로를 객체처럼 다룰 수 있게 해줘서,문자열보다 훨씬 편리하게 경로 조작을 할 수 있다 작업 디렉토리 설정 및 출력 폴더 생성from pathlib import Path__file__ # 현재 실행 중인 파일 경로WORK_DIR = Path(__file__).parentOUT_DIR = WORK_DIR / "output"OUT_DIR.mkdir(exist_ok=True)__file__ 은 현재 실행 중인 Python File 의 전체 경로를 담고 있는 내장 변수이다 Path(__file__) 로 __file__ ..

TIL/Python 2025.07.09

input = sys.stdin.readline() 과 input = sys.stdin.readline 의 차이

오랜만에 백준 문제를 풀다가, input() 에서 TypeError 가 났다 Traceback (most recent call last): File "/Users/ahram/Desktop/Algorithm/After/12_심화2/04_2108_통계학.py", line 14, in n = int(input()) # 수의 개수 TypeError: 'str' object is not callableahram@Ahram-MacBook-Pro Algorithm % Python 을 너무 오랜만에 봐서 sys 로 input 만드는 것도 까먹었다 이렇게 했더니 String 이라고 Error 가 뜬 거였음 import sys input = sys.stdin.readline()n = int(input()) # 수..

TIL/Python 2025.05.23

Insert Dummy Data into MySQL w/ Python

MySQL 에 Dummy Data 삽입 w/ Python 더미 데이터가 필요한 일이 생겨서 코드를 만들어봤다 userTest 라는 Table 을 만들고 id, name, email Column 으로 구성했다 CREATE TABLE userTest ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(100), email VARCHAR(100));Cursor 커서 MySQL 에서 SQL 쿼리를 실행하고 그 결과를 가져오는 역할커서를 사용하여 SELECT, INSERT, UPDATE, DELETE 같은 SQL 문을 실행할 수 있다  import mysql.connectorimport randomimport string # MySQL 연결 정보 config = { ..

TIL/Python 2025.02.11

[Python] split() 와 strip()

split()입력 문자열을 공백 (스페이스, 탭, 개행 등) 기준으로 리스트 형태로 반환 사용 예시 word = input().split()# 입력hello world# 결과word = ['hello', 'world'] # 리스트로 저장strip() 입력 문자열의 양쪽 끝에 있는 공백 (스페이스, 탭, 개행 등) 을 제거하고, 문자열로 반환사용 예시 word = input().strip()# 입력hello# 결과word = 'hello' # 문자열로 저장 백준 1181 단어 정렬을 다시 풀어보면서, 나도 모르게 split() 을 썼는데 중복 제거를 하려고 썼던 data_list = list(set(data_list)) 에서 아래와 같은 에러가 나왔다 Traceback (most recent call la..

TIL/Python 2024.12.03

[TIL] B-Tree, B-트리

B-Tree, B-트리데이터베이스와 파일 시스템에서 널리 사용되는 트리 자료 구조이진 트리는 하나의 노드가 가질 수 있는 자식 노드가 최대 2개인 반면,B-Tree 는 m 개의 자식 노드를 가질 수 있다  차수가 3인 B-Tree, 파란색 부분은 각 노드의 Key 를 나타내며, 빨간색 부분은 자식 노드들을 가리키는 포인터Key 들은 노드 안에서 항상 정렬된 값을 가지며, 각 Key 들의 왼쪽 자식들은 항상 Key 보다 작은 값을, 오른쪽은 큰 값을 가진다  B-Tree 는 order M 을 가지며, 이를 B-Tree of order M 이라고 한다B-Tree of order M 은 다음과 같은 조건을 만족해야 한다모든 노드가 가질 수 있는 자식 노드의 최대 수는 M 이다 ex) 3차 B-Tree 라면 최..

TIL/Python 2024.10.04

[TIL] 배낭 문제 Knapsack Problem

배낭 문제 Knapscak Problem 최대 K 의 무게를 담을 수 있는 배낭 각기 다른 가치 V 를 가지고 W 의 무게인 N 개의 물건을 배낭에 최대한 가치가 높은 물건들로 담을 수 있는 조합을 찾는 문제  만약 n개의 물건이 있을 때, 가능한 모든 조합을 만들기 위해서는 2^n개의 경우를 시도해 보아야 하고그렇게 된다면 시간 복잡도는 O(2^n) 이기 때문에 Brute Force 는 적합하지 않다  배낭 문제는 물건을 쪼갤 수 있는 Fraction Knapsack Problem 과물건을 쪼갤 수 없는 0-1 Knapsack Problem 으로 나뉜다   부분 배낭 문제 Fraction Knapsack Problem 물건을 쪼개서 넣을 수 있다 가치가 큰 물건부터 담고, 남은 무게만큼 물건을 쪼개는..

TIL/Python 2024.10.01

[TIL] LCS 알고리즘

LCS 알고리즘Longest Common Subsequence 최장 공통 부분 수열 또는 Longest Common Substring 최장 공통 부분 문자열  Longest Common Substring두 개 이상의 문자열에서 연속적으로 나타나는 가장 긴 부분 문자열 찾기 부분 문자열은 주어진 문자열의 연속된 부분을 의미한다원래 문자열에서 특정 시작 위치에서부터 특정 끝 위치까지의 모든 문자를 포함한다이는 문자들이 연속적으로 이어져 있어야 하며, 반드시 전체 문자열의 일부분이어야 한다ex. 문자열 abcde 에서 bcd 는 부분 문자열이지만 acd 는 부분 문자열이 아니다 Longest Common Substring 찾는 방법 1. 문자열 A, 문자열 B 를 한 글자씩 비교해 보기2. 두 문자가 다르다면..

TIL/Python 2024.09.30

[TIL] 그리디 알고리즘 Greedy Algorithm

그리디 알고리즘 Greedy Algorithm 매 선택에서 지금 이 순간 당장 최적인 답을 선택하여 적합한 결과를 도출하자는 알고리즘 설계 기법 항상 최적의 값을 보장하는 것이 아니라 최적의 값에 '근사한 값'을 목표로 한다  예시) 경로1 이 [ 1 - 1 - 1 - 100 ] 이고 경로2 가 [ 3 - 10 - 3 - 10 ] 일 때경로1 에서는 첫 세 단계에서 최적의 답을 선택했지만 최종 가중치는 103이고경로2 에서는 각 단계에서의 선택이 더 나은 결과를 가져와 최종 가중치가 더 작아진다이 때 경로1 에서의 선택이 그리디 방법론의 예시 그리디 알고리즘 주요 속성탐욕 선택 속성 Greedy Choice Property각 단계에서 '최선의 선택' 을 했을 때 전체 문제에 대한 최적해를 구할 수 있는 ..

TIL/Python 2024.09.29

[TIL] 다이나믹 프로그래밍 Dynamic Programming, DP

다이나믹 프로그래밍 Dynamic Programming, DP복잡한 문제를 더 작은 하위 문제로 나누어 해결하는 알고리즘 설계 기법 큰 문제를 작은 문제로 쪼개서 그 답을 저장해두고 재활용한다, '기억하며 풀기' 1. 알고리즘 기법문제를 해결하기 위해 사용되는 절차적인 방법 또는 계획2. 알고리즘 설계 기법문제 해결을 위해 알고리즘을 설계하는 방법이나 접근 방식 다이나믹 프로그래밍 사용 조건Overlapping Subproblems 겹치는 부분 문제DP 는 기본적으로 문제를 나누고 그 문제의 결과 값을 재활용해서 전체 답을 구하기 때문에동일한 작은 문제들이 반복하여 나타나는 경우에 사용이 가능하다 Optimal Substructure 최적 부분 구조 부분 문제의 최적 결과 값을 사용해 전체 문제의 최적 ..

TIL/Python 2024.09.27

[TIL] 최소 신장 트리 MST, Minimum Spanning Tree

최소 신장 트리 MST, Minimum Spanning Tree가중치가 있는 연결 그래프에서 모든 정점을 연결하는 간선들의 부분 집합 중에간선들의 가중치 합이 최소가 되는 트리즉, 스패닝 트리 중 간선의 가중치 합이 최소인 트리스패닝 트리 Spanning Tree 그래프 내의 모든 정점을 포함하는, 그래프의 최소 연결 부분 그래프 n 개의 정점을 가지는 그래프의 최소 간선의 수는 (n-1) 이고, (n-1) 개의 간선으로 연결되어 있으면 필연적으로 트리 형태가 된다 -> 스패닝 트리!MST 특징1. n 개의 정점을 가지는 그래프에서 최소 신장 트리는 n-1 개의 간선을 가진다(단, 모든 정점이 반드시 연결된 경우에만 성립하며, 가중치가 음수인 경우는 해당되지 않는다)2. 사이클이 없고 모든 정점이 연결되..

TIL/Python 2024.09.25
반응형