본문 바로가기

전체 글385

Python sorted() 함수에서 정렬 기준 설정하기 Python의 sorted() 함수는 리스트, 튜플, 딕셔너리 등 반복 가능한(iterable) 데이터를 정렬할 때 사용됩니다. 기본적으로 오름차순으로 정렬되지만, key 매개변수를 사용하면 사용자 정의 기준에 따라 데이터를 정렬할 수 있습니다.1. sorted() 함수의 기본 사용법문법sorted(iterable, key=None, reverse=False)iterable: 정렬할 데이터 (리스트, 튜플, 딕셔너리 등).key: 정렬 기준을 정의하는 함수. 각 요소를 기준으로 변환한 값에 따라 정렬.reverse: 정렬 방향을 설정. 기본값은 False(오름차순), True로 설정하면 내림차순.2. 기본 정렬데이터의 기본값(숫자 크기, 사전 순서 등)에 따라 정렬됩니다.# 숫자 기본 정렬numbers .. 2024. 11. 28.
파라메트릭 서치(Parametric Search)란? 파라메트릭 서치(Parametric Search)는 최적화 문제를 결정 문제로 바꾸어 해결하는 방법입니다. 주어진 범위 내에서 특정 조건을 만족하는 값의 최대/최소를 찾기 위해 이분 탐색을 활용합니다.이 기법은 주로 이분 탐색을 변형하여 사용하며, 시간 복잡도를 크게 줄일 수 있는 강력한 방법입니다.1. 파라메트릭 서치의 핵심 아이디어최적화 문제란?어떤 값을 최대화하거나 최소화하는 문제를 의미.예: "길이 x로 나누었을 때 가능한 가장 큰 값을 찾기", "시간을 최소화하는 경우".결정 문제로 변환주어진 조건을 만족하는지 '예/아니오(True/False)'로 판단하는 문제로 바꿉니다.이 조건을 만족하는 값을 이분 탐색으로 찾아냅니다.이분 탐색 활용범위를 좁히며 조건을 만족하는 값의 최대/최소를 찾습니다.결.. 2024. 11. 28.
Python에서 집합(set) 생성과 초기값 설정법 Python의 set() 함수는 중복 없는 데이터 구조를 생성할 때 사용됩니다. 이 글에서는 set()을 사용할 때 초기값을 설정하는 다양한 방법과, 그 중 set([a])와 같은 표현에서 대괄호([])의 역할을 포함해 가장 적합한 초기값 설정 방법에 대해 설명하겠습니다.1. set() 함수란?set() 함수는 반복 가능한 객체(iterable)를 받아 집합(set)을 생성하는 함수입니다. 집합은 다음과 같은 특징을 가집니다:중복 제거: 집합 내의 모든 원소는 고유합니다.순서 없음: 집합은 원소의 순서를 보장하지 않습니다.예시# 리스트를 집합으로 변환numbers = [1, 2, 2, 3]unique_numbers = set(numbers)print(unique_numbers) # {1, 2, 3}# .. 2024. 11. 27.
알고리즘 탐색 문제 유형별 좌표 변수명 가이드 알고리즘 문제를 풀다 보면 좌표를 다루는 탐색 문제가 자주 등장합니다. 이러한 문제는 2차원 배열(맵/그래프)부터 3차원 공간 탐색까지 다양한 유형으로 나타나며, 적절한 변수명을 사용하는 것이 가독성과 효율적인 문제 해결에 큰 도움이 됩니다. 이번 글에서는 알고리즘 탐색 문제의 유형별로 적합한 좌표 변수명을 정리하여 소개합니다.1. 일반적인 BFS/DFS 탐색문제 상황그래프나 맵을 탐색하며 연결된 영역을 찾는 문제.보통 2차원 배열에서 특정 칸(좌표)을 방문하거나 이동 방향을 확인하는 방식으로 풀이합니다.추천 변수명현재 좌표: x, y, cx, cy (current x, current y)다음 좌표: nx, ny (new x, new y), next_x, next_y이웃 좌표: neighbor_x, ne.. 2024. 11. 25.
Python collections 모듈의 defaultdict 사용하기 defaultdict는 Python의 collections 모듈에 포함된 특별한 딕셔너리 자료구조입니다. 기본적으로 키가 없을 때도 기본값을 자동으로 생성할 수 있는 딕셔너리입니다.일반적인 딕셔너리(dict)는 존재하지 않는 키를 접근하려고 하면 KeyError를 발생시키지만, defaultdict는 미리 지정된 기본값 생성 함수(default_factory)를 사용해 값을 자동으로 생성합니다.기본 문법from collections import defaultdict# defaultdict 생성d = defaultdict(default_factory)default_factory: 기본값을 생성하는 함수(예: int, list, str 등).딕셔너리에 존재하지 않는 키에 접근하면 default_factory.. 2024. 11. 22.
DP(다이나믹 프로그래밍, Dynamic Programming) DP(Dynamic Programming)란?DP는 문제를 작은 부분 문제(subproblems)로 나누어 해결하고, 그 결과를 저장하여 동일한 문제를 다시 계산하지 않도록 하는 알고리즘 설계 기법입니다. 중복되는 계산을 줄여 효율성을 극대화하는 것이 핵심입니다.언제 DP를 사용할까?DP는 문제를 해결하는 데 다음 두 가지 조건이 만족될 때 사용합니다:Overlapping Subproblems (겹치는 부분 문제):동일한 부분 문제가 여러 번 반복해서 계산됩니다.예를 들어 피보나치 수열 계산 시, 동일한 피보나치 값이 반복적으로 계산됨.Optimal Substructure (최적 부분 구조):문제의 최적 해답이 부분 문제의 최적 해답으로 구성됩니다.즉, 작은 문제들의 최적 결과를 합쳐서 전체 문제의 최적.. 2024. 11. 22.