본문 바로가기

전체 글384

Python의 with 문으로 컨텍스트 관리하기 Python의 with 문with 문은 Python에서 컨텍스트 관리(context management)를 위한 키워드입니다. 주로 파일 작업이나 리소스 관리와 같이 "열고 닫아야 하는 작업"을 안전하고 간편하게 처리할 때 사용됩니다.with 문이 필요한 이유파일을 열거나, 데이터베이스 연결, 네트워크 소켓과 같은 작업에서는 리소스를 명시적으로 닫아주는 것이 중요합니다.예를 들어, 파일 작업에서는 작업이 끝난 후 항상 close()를 호출해야 합니다.하지만 예외가 발생하면 close()가 호출되지 않을 수 있습니다.with 문을 사용하면 이러한 리소스 해제를 자동으로 처리할 수 있습니다.with 문 사용법with context_expression as variable: # 코드 블록context_e.. 2024. 12. 8.
Python의 next() 함수로 이터레이터 객체 순회하기 Python의 next() 함수Python의 next() 함수는 이터레이터(iterator)에서 다음 값을 반환하는 함수입니다. 이 함수는 이터레이터 객체를 순회할 때 사용되며, 다음 항목으로 이동하거나, 더 이상 항목이 없을 경우 기본값을 반환할 수 있습니다.사용법next(iterator, default)iterator: 이터레이터 객체. iter() 함수로 생성할 수 있습니다.default (선택 사항): 이터레이터가 끝났을 때 반환할 값입니다. 기본값을 지정하지 않으면 예외(StopIteration)가 발생합니다.동작 과정이터레이터에서 값을 하나 꺼냅니다.다음 값이 없으면 기본값을 반환하거나 StopIteration 예외를 발생시킵니다.예제1. 기본 사용next()를 사용해 이터레이터에서 값을 가져.. 2024. 12. 8.
Streamlit으로 누구나 만드는 웹 애플리케이션 Streamlit 소개Streamlit은 Python으로 빠르고 간단하게 데이터 중심의 웹 애플리케이션을 만들 수 있는 오픈소스 프레임워크입니다. Python 코드를 기반으로 복잡한 웹 개발 지식 없이도 대화형 웹 애플리케이션을 구축할 수 있습니다. 데이터 분석가, 머신러닝 엔지니어, 연구원 등 비개발자도 쉽게 사용할 수 있는 도구로 각광받고 있습니다.주요 특징1. 쉬운 설치 및 사용Streamlit은 Python 기반이며, 설치 후 간단한 Python 코드만으로 웹 앱을 만들 수 있습니다.Flask, Django 같은 웹 프레임워크보다 훨씬 간단하며, HTML이나 CSS 같은 추가 기술을 배우지 않아도 됩니다.2. 대화형 위젯사용자는 버튼, 슬라이더, 텍스트 입력 등의 위젯을 쉽게 추가할 수 있습니다... 2024. 12. 8.
Python 소수점 자리수 제어와 숫자 포매팅 :.nf Python에서 숫자 포매팅과 소수점 제어는 어떻게 할까요?Python으로 작업하다 보면 숫자를 특정 형식으로 출력하거나 소수점 이하 자리수를 조정해야 할 때가 많습니다.예를 들어, 계산 결과를 소수점 이하 3자리까지만 표시하거나, 천 단위 구분 기호를 추가해야 하는 경우 등이 있습니다.:.nf란 무엇인가요?:.nf는 Python에서 숫자를 소수점 이하 3자리로 제한하여 출력하는 포매팅 옵션입니다.이 문법을 사용하면 자동 반올림과 함께 보기 좋은 숫자 형식을 만들 수 있습니다.기본 문법:{value:.nf}value: 출력할 숫자 값.n: 표시할 소수점 이하 자리수.f: 고정 소수점(fixed-point) 형식.1. :.3f 사용 예제소수점 이하 3자리까지 출력value = 1.23456print(f"{.. 2024. 12. 3.
우선순위 큐(Priority Queue)와 코딩 테스트 활용법 1. 우선순위 큐(Priority Queue)란?우선순위 큐는 가장 높은(또는 낮은) 우선순위를 가진 요소를 빠르게 꺼낼 수 있는 자료구조입니다.일반적인 큐(First In, First Out)와 달리, 삽입 순서가 아닌 우선순위에 따라 요소를 처리합니다.1.1 특징자동 정렬:요소가 삽입될 때, 우선순위를 기준으로 내부적으로 정렬됩니다.효율적인 접근:우선순위가 가장 높은 요소를 꺼내는 작업은 O(log N)의 시간 복잡도를 가집니다.활용 목적:우선순위가 중요한 작업을 빠르게 처리하는 데 사용됩니다. 예: 다익스트라 알고리즘, 작업 스케줄링 등.2. 파이썬에서 우선순위 큐 구현파이썬에서는 우선순위 큐를 heapq 모듈을 이용해 구현합니다.heapq는 최소 힙(min-heap) 기반으로 작동하며, 기본적으로.. 2024. 11. 28.
최장 증가 부분 수열(LIS, Longest Increasing Subsequence) 1. LIS란 무엇인가?1.1 정의주어진 배열에서 순서를 유지하면서 가장 긴 증가하는 부분 수열을 찾는 문제입니다.부분 수열은 배열의 원소 중 일부를 선택하여 만든 수열이며, 원소의 순서는 유지되어야 합니다.1.2 예제입력 배열: [10, 20, 10, 30, 20, 50]가능한 부분 수열:[10, 20] (길이: 2)[10, 20, 30] (길이: 3)[10, 20, 30, 50] (길이: 4)결과:LIS: [10, 20, 30, 50]LIS의 길이: 42. LIS 문제 해결 방법LIS 문제를 해결하기 위해 두 가지 대표적인 접근법이 있습니다.동적 계획법 (Dynamic Programming, DP)시간 복잡도: O(N²)간단하고 직관적.작은 배열에 적합.이분 탐색 (Binary Search)시간 복잡.. 2024. 11. 28.