일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 삽입정렬
- Median of Medians
- 병합정렬
- 선택정렬
- 백준
- C++
- 선택알고리즘
- 힙정렬
- DP
- 다이나믹프로그래밍
- 자료구조
- 수학
- 계수정렬
- 알고리즘
- java
- 자바
- 동적프로그래밍
- 프로그래밍언어
- 버블정렬
- 프로그래밍
- 안드로이드
- 재귀
- 기수정렬
- SNS
- 정렬
- 코딩테스트
- 정수론
- 동적계획법
- 백트래킹
- 퀵정렬
- Today
- Total
목록알고리즘 (33)
MODE::CREATIVE

https://www.acmicpc.net/problem/1918 1918번: 후위 표기식 첫째 줄에 중위 표기식이 주어진다. 단 이 수식의 피연산자는 알파벳 대문자로 이루어지며 수식에서 한 번씩만 등장한다. 그리고 -A+B와 같이 -가 가장 앞에 오거나 AB와 같이 *가 생략되는 등의 www.acmicpc.net 문제 해석 중위 표기식을 후위표기식으로 변환하여 출력하는 문제입니다. 후위 표기식변환은 스택(stack)을 이용합니다. 풀이 각 문자에 대해 다음과 같은 작업을 수행합니다 문자가 문자나 숫자(즉, 피연산자)인 경우, 결과 문자열에 바로 추가합니다. 문자가 여는 괄호 '('인 경우, 이를 스택에 넣습니다. 문자가 닫는 괄호 ')'인 경우, 스택에서 여는 괄호 '('가 나올 때까지 문자를 pop하..

숭실대학교 컴퓨터학부의 알고리즘 수업을 들으며 정리한 내용입니다.참고교재: 쉽게 배우는 알고리즘(문병로)기본적인 정렬 알고리즘 O(n^2)1.선택정렬2.버블정렬3.삽입정렬고급 정렬 알고리즘 O(n*logn)1.병합정렬2.퀵정렬3.힙정렬특수 정렬 알고리즘 O(n)1.계수정렬2.기수정렬퀵정렬이란퀵 정렬(Quick Sort)은 분할 정복 방식의 효율적인 정렬 알고리즘 중 하나입니다. 퀵 정렬은 배열을 두 부분으로 분할하고, 각 부분을 재귀적으로 정렬하여 전체 배열을 정렬합니다. 분할 시 기준이 되는 '피벗'을 선택하고, 피벗보다 작은 요소는 왼쪽, 큰 요소는 오른쪽으로 이동합니다. 퀵 정렬의 시간 복잡도는 평균적으로 O(n log n)입니다. 하지만 최악의 경우(이미 정렬된 배열 등) O(n^2)이 될 수 있..

문제 해석 각 슬라이딩 윈도우 크기 내에서 최소값을 출력하는 문제입니다. 풀이 벡터와 덱을 이용해 해결했습니다. 각 D(i)에 대해 다음을 반복합니다. 현재 추가되는 A(i)와 dq.back(덱에서 가장 큰 수)를 비교하여 A(i)가 더 작다면 dq.back을 pop함 A(i)를 인덱스와 함께 back에 추가 dq.front가 윈도우 크기를 벗어났다면 pop함 dq.front를 출력 코드 #include #include #include using namespace std; int main() { //입출력 최적화 ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); //입력부 int n,l; cin >> n >> l; vector a(n); ..

숭실대학교 컴퓨터학부의 알고리즘 수업을 들으며 정리한 내용입니다.참고교재: 쉽게 배우는 알고리즘(문병로)기본적인 정렬 알고리즘 O(n^2)1.선택정렬2.버블정렬3.삽입정렬고급 정렬 알고리즘 O(n*logn)1.병합정렬2.퀵정렬3.힙정렬특수 정렬 알고리즘 O(n)1.계수정렬2.기수정렬 병합정렬이란병합 정렬(Merge Sort)는 분할 정복 알고리즘의 일종으로, 배열을 반으로 나누어 각각을 정렬한 후, 두 개의 정렬된 배열을 병합하여 하나의 정렬된 배열을 만드는 방식입니다. 이 정렬 방법은 다음과 같은 순서로 진행됩니다.1. 분할(Divide): 입력 배열을 같은 크기의 2개의 부분 배열로 분할합니다. 부분 배열의 크기가 1 또는 0이 될 때까지 이 과정을 반복합니다. 2. 정복(Conquer): 부분 ..

숭실대학교 컴퓨터학부의 알고리즘 수업을 들으며 정리한 내용입니다.참고교재: 쉽게 배우는 알고리즘(문병로) 기본적인 정렬 알고리즘 O(n^2)1.선택정렬2.버블정렬3.삽입정렬고급 정렬 알고리즘 O(n*logn)1.병합정렬2.퀵정렬3.힙정렬특수 정렬 알고리즘 O(n)1.계수정렬2.기수정렬 삽입정렬이란삽입 정렬(Insertion Sort)은 배열을 정렬하는 또 다른 기본적인 알고리즘입니다. 이 방법은 각 반복에서 하나의 원소를 적절한 위치에 '삽입'하는 방식으로 동작합니다. 삽입 정렬은 일반적으로 소규모 데이터셋에 대해서는 효율적이지만, 큰 데이터셋에 대해서는 그렇지 않습니다.삽입 정렬의 작동 방식은 다음과 같습니다: 1.배열의 두 번째 원소부터 시작하여 현재의 원소를 key 값으로 저장합니다. 2.key ..

숭실대학교 컴퓨터학부의 알고리즘 수업을 들으며 정리한 내용입니다.참고교재: 쉽게 배우는 알고리즘(문병로) 기본적인 정렬 알고리즘 O(n^2)1.선택정렬2.버블정렬3.삽입정렬고급 정렬 알고리즘 O(n*logn)1.병합정렬2.퀵정렬3.힙정렬특수 정렬 알고리즘 O(n)1.계수정렬2.기수정렬 버블정렬이란기본 정렬 알고리즘 중 하나인 버블정렬에 대해 알아보겠습니다.버블 정렬(Bubble Sort)은 가장 간단하고 직관적인 정렬 알고리즘 중 하나입니다. 이 알고리즘은 리스트를 반복하면서 인접한 두 원소를 비교하고, 필요에 따라 위치를 바꿔가며 정렬을 수행합니다. 버블 정렬의 이름은 더 큰 값의 원소가 리스트의 끝으로 '거품(bubble)'처럼 서서히 올라가는 모습에서 유래했습니다.버블 정렬의 기본적인 작동 방식은 ..