- Today
- Total
목록View All (355)
DATA101
본 포스팅에서는 완전 이진 트리(Complete Binary Tree) 자료구조에 대해 알아봅니다. * 완전 이진 트리(Complete Binary Tree) 자료구조란? 완전 이진 트리란 각 노드가 최대 2개의 자식 노드를 갖는 트리 형태의 자료구조로서 마지막 레벨을 제외한 모든 노드는 완전히 채워져 있어야 합니다. 또한, 최하단 레벨의 노드는 좌측만 노드가 채워져 있거나 좌측과 우측 모두 채워져 있어야 하며, 노드를 삽입할 때는 최하단 좌측 노드부터 차례대로 삽입해야 합니다(그림 1 참고). 그림 1 우측 트리는 노드 12의 자식 노드가 우측에만 삽입되어 있기 때문에 완전 이진트리라고 할 수 없습니다. 포스팅 내용에 오류가 있을 경우 댓글 남겨주시면 감사드리겠습니다. 그럼 오늘도 건강한 하루 보내시길..
본 포스팅에서는 파라메트릭 서치(parametric search)에 대해 알아봅니다. 📚 목차 1. 파라메트릭 서치란? 2. 파라메트릭 서치는 언제 사용하면 좋을까? 3. 파라메트릭 서치와 이진 탐색 간의 차이점 4. 파라메트릭 서치의 동작 과정 4.1. 파라메트릭 서치 예시 4.2. 파라메트릭 서치의 시간 복잡도 1. 파라메트릭 서치란? 파라메트릭 서치는 최적화 문제를 결정 문제로 바꾸어 풀어 나가는 기법입니다. 여기서 결정 문제란 'yes' or 'no', 즉, '예' 또는 '아니오'로 답하는 문제를 말합니다. 파라메트릭 서치는 주로 특정 조건을 만족하면서 동시에 가장 적합한 변숫값을 찾아나가는 문제에서 활용되며, 이진 탐색(Binary Search)을 이용하여 구현합니다. 예를 들어, 특정 조건을 ..
파이썬 내장 함수 ord(), chr()는 유니코드(Unicode)를 활용하여 문자열-숫자 간의 변환을 도와줍니다. 두 함수를 각각 살펴보도록 하겠습니다. 1. chr() 함수: 숫자👉문자열 변환 chr(숫자) chr() 함수 안에 숫자형 데이터를 입력하면 해당 숫자와 같은 유니코드 포인트를 갖는 문자열을 반환해 줍니다. 예를 들어, 97을 입력하면 문자열 'a'가 출력됩니다. 숫자-알파벳 간의 유니코드 포인트 정보를 포스팅 맨 아래 표 1 에 정리해 두었습니다. 필요하신 분들은 참고하시길 바랍니다. 2. ord() 함수: 문자열👉숫자 변환 ord(문자열) chr() 함수와 반대로, ord() 함수는 문자열을 입력하면 해당 문자열과 같은 유니코드 포인트를 갖는 정수를 반환해 줍니다. 예를 들어, 'a'를..
안녕하세요, 오늘은 다양한 수학적 계산이나 기호를 쉽게 활용할 수 있도록 도와주는 math 파이썬 표준 라이브러리에 대해 알아보도록 하겠습니다. 그럼 바로 시작하죠! 목차 1. 팩토리얼(factorial) 2. 제곱근(square root) 3. 최대 공약수(Greatest Common Divisor, GCD) 4. 최소 공배수(Least Common Multiple, LCM) 5. 자연상수(\(e\)) 6. 파이(\(\pi\)) 1. 팩토리얼(factorial) 팩토리얼(factorial)은 \(n\) 개의 데이터를 일렬로 나열하는 경우의 수로서 수학적으로는 \(n!\) 과 같이 표현합니다. math 라이브러리의 factorial() 함수를 사용하여 경우의 수를 편리하게 계산할 수 있습니다. 다음은 \..
안녕하세요, 오늘은 파이썬 Counter 함수를 활용하여 리스트 내 원소 개수를 구하는 방법에 대해 소개해 드립니다. 소스코드 from collections import Counter # 과일 정보를 저장한 리스트 생성 arr = ['Apple', 'Banana', 'Orange', 'Apple', 'Grape', 'Orange', 'Water Melon'] cnt = Counter(arr) print(cnt['Apple']) # 사과 개수 print(cnt['Orange']) # 오렌지 개수 print(dict(cnt)) # 딕셔너리 자료형으로 출력 가장 먼저, 리스트 내 원소의 개수를 세기 위해서는 collections 파이썬 표준 라이브러리에서 Counter 함수를 가져와야 합니다. 해당 함수에 리..
안녕하세요, 오늘은 파이썬에서 이진 탐색(Binary Search) 구현을 도와주는 bisect 라이브러리에 대해 알아봅니다. 이진 탐색에 대한 자세한 내용은 아래 링크를 참고해 주세요 :) heytech.tistory.com/64 [알고리즘] 이진 탐색(Binary Search)에 대해 알아보자!(+Python 구현) 안녕하세요, 오늘은 이진 탐색(Binary Search) 알고리즘에 대해 알아보겠습니다. 그럼 바로 시작하죠! 목차 1. 이진 탐색이란? 2. 이진 탐색의 동작 과정 3. 이진 탐색의 시간 복잡도 4. 이진 탐색 구현 heytech.tistory.com bisect 라이브러리란? bisect 라이브러리는 원소들이 정렬된 리스트에서 특정 원소를 찾을 때 효과적입니다. bisect 라이브러리..
안녕하세요, 오늘은 파이썬 itertools 라이브러리를 활용하여 순열(Permutation), 조합(Combination), 중복 순열(Permutation with reptition), 중복 조합(Combination with reptition)을 계산하는 방법에 대해 공유해 드립니다. 그럼 바로 시작하죠! 📚 목차 1. 순열(Permutation) 2. 조합(Combination) 3. 중복 순열(Permutation with repetition) 4. 중복 조합(Combination with repetition) 1. 순열(Permutation) 순열은 \(n\) 개의 데이터 중에서 \(r\) 개의 데이터를 뽑아 일렬로 나열하는 모든 경우의 수로서 수학적인 기호로는 \(_{n}P_{r}\) 와 같..
안녕하세요, 오늘은 파이썬 f-string 문법에 대해 간단하게 알아보겠습니다. f-string 이란? f-string는 최근에 나온 문자열 포맷팅 구문으로서 formatted string literals이라고 부릅니다. 기존에 % 포맷팅이나 format 문자열 구문은 여전히 가독성에 문제가 있었습니다. name = 'Tony Park' major = 'Computer Science' city = 'Seoul' message = 'Hi, this is %s. My major is %s and I\'m living in %s.' %(name, major, city) print(message) # Hi, this is Tony Park. My major is Computer Science and I'm li..