본문 바로가기
728x90
반응형

분류 전체보기148

버블 정렬 알고리즘 (Bubble Sort) 이번 포스팅에서 다룰 버블 정렬(Bubble Sort)은 거품 정렬이라고도 하는데 속도는 조금 느리지만, 정렬 알고리즘 중에 알고리즘이 단순하고 코드 구현이 쉽기 때문에 자주 사용됩니다. 버블 정렬 과정, 시간 복잡도, 장단점, 버블 정렬 알고리즘 파이썬 구현에 대해 알아보겠습니다. 버블 정렬이란? (Bubble Sort) 인접한 두 개의 원소를 비교하며 자리를 교환하여 정렬하는 방법입니다. 교환하는 원소의 이동 모습이 마치 수면 위로 올라오는 거품 같아서 지어진 이름입니다. 오름차순 버블 정렬 과정 첫 번째 원소부터 인접한 원소끼리 계속 자리를 교환하면서 맨 마지막 원소까지 교환합니다. 한 단계가 끝나면 오름차순일 경우는 가장 큰 원소가, 내림차순일 경우 가장 작은 원소가 마지막 자리로 정렬됩니다. 위.. 2021. 7. 31.
부분 집합 알고리즘(Subset)과 예제 포스팅에서 다룰 주제는 부분 집합 알고리즘입니다. 부분 집합(PowerSet, SubSet)의 개념과 루프를 이용하는 법과 비트 연산자를 이용하는 2가지 방법으로 부분 집합의 알고리즘 구현, 부분 집합의 개수 구하는 법과 공식, 부분 집합의 합 구하기 알고리즘 문제까지 알아보겠습니다. 부분 집합이란? 부분 집합 A는 모든 원소가 집합 B에도 속하는 집합입니다. 예를 들면 집합 A = {2, 4}는 집합 B = {2, 4, 6}의 부분 집합입니다. 집합의 부분 집합의 총 개수 집합의 원소의 개수가 n개일 때, 공집합을 포함한 부분 집합의 개수는 2ⁿ 개입니다. 각 원소를 부분 집합에 포함시키거나 포함시키지 않는 2가지 경우를 모든 원소에 적용한 경우의 수와 같습니다. ex) {1, 2, 3, 4} > 2 .. 2021. 7. 31.
[Python] SWEA 4869 종이 붙이기 SWEA SW Expert Academy 4869번 종이 붙이기 문제는 20xN 크기의 직사각형을 테이프로 표시하고, 안에 10x20, 20x20인 종이를 빈틈없이 붙이는 모든 경우를 찾을 때, 몇 개의 테이프 영역이 필요한지 계산하는 문제로 동적 계획법 DP 알고리즘에 관한 문제다. SW Expert Academy 4869번 종이 붙이기 문제 정보 알고리즘 분류 - DP Dynamic Programming 동적 계획법 알고리즘, memoization 메모이제이션 난이도 - D2 DP Dynamic Programming 동적 계획법 알고리즘과 예제 DP Dynamic Programming 동적 계획법 알고리즘과 예제 포스팅에서 다룰 DP; Dynamic Programming 동적 계획법 알고리즘은 큰 문.. 2021. 7. 30.
DP Dynamic Programming 동적 계획법 알고리즘과 예제 포스팅에서 다룰 DP; Dynamic Programming 동적 계획법 알고리즘은 큰 문제를 여러 개의 작은 문제들로 나누어 푸는 방법으로 최적화 문제를 해결하고 프로그램의 전체적인 실행 속도와 성능을 향상할 수 있는 중요한 알고리즘입니다. 예제를 사용한 구현 방식까지 알아보겠습니다. DP; Dynamic Programming 동적 계획법이란? 동적 계획법 Dynmic Programming 알고리즘 : 크기가 크거나 복잡한 문제를 효율적으로 풀기 위해 작거나 간단한 여러 개의 문제로 나눠서 푸는 방법으로, 그리디 알고리즘과 같이 최적화 문제를 해결하는 알고리즘입니다. 입력 크기가 작은 부분 문제들을 해결한 후에 그 해 들을 이용하여 보다 큰 크기의 부분 문제들을 해결하고, 최종적으로 원래 주어진 입력의 .. 2021. 7. 30.
728x90
반응형