일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- Java
- HTML
- web
- 재귀
- Stack
- 파이썬
- 큐
- 두근두근 자료구조
- 파일 시스템
- 시간복잡도
- 스택
- windosws wbcs
- War Game
- System
- pwnable.kr
- ftz
- windosw 문자열
- 미로 탐색 알고리즘
- c언어
- C
- 암호수학
- level13
- SWiFT
- ftz level13
- OSI
- 정렬 알고리즘
- 백준
- PHP
- 자료구조
- LoB
- Today
- Total
목록Programming/Algorithm & Data Structure (60)
나의 기록, 현진록
dbguswls030/Argorithm Contribute to dbguswls030/Argorithm development by creating an account on GitHub. github.com 문제 설명 var map = [ ["1","1","1","1","1","1"], ["e","0","1","0","0","1"], ["1","0","0","0","1","1"], ["1","0","1","0","1","1"], ["1","0","1","0","0","x"], ["1","1","1","1","1","1"]] 현재 위치가 "e"일 때 "x"까지 도달하는 프로그램을 작성해야 한다. "1"은 이동할 수 없는 길이며, "0"인 길로만 이동할 수 있다. 맵은 2차원 배열로 작성되어 있으며 DFS(깊..
dbguswls030/Argorithm Contribute to dbguswls030/Argorithm development by creating an account on GitHub. github.com 원형 덱의 예 덱은 큐를 응용하여 전단(front)과 후단(rear)에서 삽입(add), 삭제(delete)가 모두 이루어진다. 선형 덱에서 배열을 원형으로 생각하면 원형 덱으로 구현할 수 있다. 원형 덱의 경우에는 front와 rear의 값이 배열의 끝인 MAX_DEQUE_SIZE-1에 도달하면 다음 증가되는 값이 0으로 되도록 한다. 구현에 필요한 요소 initDeque() : 덱을 초기화 함 add_front(e) : 주어진 요소 e를 덱의 맨 앞에 추가한다. delete_front() : 전단 ..
dbguswls030/Argorithm Contribute to dbguswls030/Argorithm development by creating an account on GitHub. github.com 덱의 예 덱은 큐를 응용하여 만들어진 것으로 전단(front)과 후단(rear)에서 모두 삽입, 삭제가 가능한 큐를 의미한다. 구현에 필요한 요소 init() : 덱을 초기화 함 add_front(e) : 주어진 요소 e를 덱의 맨 앞에 추가한다. delete_front() : 전단 요소를 삭제하고 반환한다. add_rear(e) : 주어진 요소 e를 덱의 맨 뒤에 추가한다. delete_rear() : 전단 요소를 삭제하지 않고 반환한다. get_front() : 전단 욯소를 삭제하지 않고 반환한다...
dbguswls030/Argorithm Contribute to dbguswls030/Argorithm development by creating an account on GitHub. github.com 원형 큐 실제 배열로 구현된 큐는 원형의 형태를 가지지 않지만 원형이라고 가정할 수 있도록 구현할 수 있다. 다음은 선형 큐를 원형 큐로 변형하는 데에 이해하기 위한 사진이다. 구현에 필요한 요소 init() : 큐를 초기화하는 메소드 is_empty() : 큐가 비어있는지 여부를 확인 enqueue(x) : x를 큐에 삽입 dequeue() : 큐에서 rear에 위치한 요소 삭제 후 반환 size() : 큐의 모든 요수 개수를 반환 peek() : 큐에서 rear에 위치한 요소 삭제하지 않고 반환 M..
dbguswls030/Argorithm Contribute to dbguswls030/Argorithm development by creating an account on GitHub. github.com 큐의 예 스택이 나중에 들어온 데이터가 먼저 쓰이는 후입선출 구조 형태의 자료구조였다면, 큐는 먼저 들어온 데이터가 먼저 쓰이는 선입선출 구조 형태의 자료구조이다. 실생활에서의 예로는 은행에서 서비스를 기다리는 손님들의 길게 늘어진 줄로 이해할 수 있다. 먼저 번호표를 뽑고 줄을 서게 되면 줄에 가장 먼저 와서 기다린 손님부터 업무를 처리하는 방식이다. 다음은 선형 큐를 구현에 쓰인 요소들이다. init() : 큐를 초기화하는 메소드 is_empty() : 큐가 비어있는지 여부를 확인 enqueue(x..
dbguswls030/Argorithm Contribute to dbguswls030/Argorithm development by creating an account on GitHub. github.com 스택의 예 식당 주방에 쌓여있는 접시를 예로 들 수 있다. 설거지를 마친 접시를 쌓아둠(Push)과 동시에 요리를 마친 음식을 담기 위해 쌓아둔 정리를 가져가는(pop) 것이 동시에 이루어지는 것으로 이해할 수 있다. 스택은 후입선출(LIFO: Last-In-First-Out) 형태의 자료구조이다. 다음은 스택 구현에 쓰인 요소들이다. init() : 스택을 초기화 하는 메소드 is_empty() : 스택이 비어있는지 여부 확인 is_full() : 스택이 가득차있는지 여부 확인 size() : 현재 ..
1193번 - 분수찾기 시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율 0.5 초 (추가 시간 없음) 256 MB 35321 17184 15321 52.886% 문제 무한히 큰 배열에 다음과 같이 분수들이 적혀있다. 1/1 1/2 1/3 1/4 1/5 … 2/1 2/2 2/3 2/4 … … 3/1 3/2 3/3 … … … 4/1 4/2 … … … … 5/1 … … … … … … … … … … … 이와 같이 나열된 분수들을 1/1 -> 1/2 -> 2/1 -> 3/1 -> 2/2 -> … 과 같은 지그재그 순서로 차례대로 1번, 2번, 3번, 4번, 5번, … 분수라고 하자. X가 주어졌을 때, X번째 분수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 X(1 ≤ X ≤ 10,000,000)가 주..
1712번 - 손익분기점 시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율 0.35 초 128 MB 76898 17497 15346 23.447% 문제 월드전자는 노트북을 제조하고 판매하는 회사이다. 노트북 판매 대수에 상관없이 매년 임대료, 재산세, 보험료, 급여 등 A만원의 고정 비용이 들며, 한 대의 노트북을 생산하는 데에는 재료비와 인건비 등 총 B만원의 가변 비용이 든다고 한다. 예를 들어 A=1,000, B=70이라고 하자. 이 경우 노트북을 한 대 생산하는 데는 총 1,070만원이 들며, 열 대 생산하는 데는 총 1,700만원이 든다. 노트북 가격이 C만원으로 책정되었다고 한다. 일반적으로 생산 대수를 늘려 가다 보면 어느 순간 총 수입(판매비용)이 총 비용(=고정비용+가변비용)보다 많..
확장 유클리드 알고리즘 유클리드 알고리즘이란 두 수의 최대공약수를 구하는 방법이다. 12345678910111213141516171819202122232425262728#include void main() { int a, b; int r, r1, r2, q[50] = {0}; int s[50] = { 1,0 }; int t[50] = { 0,1 }; printf("a, b = ? "); scanf("%d %d", &a, &b); r = a; r1 = b; int count = 0; while (r1 >= 1) { q[count+1] = r / r1; r2 = r%r1; if (count >= 2) { s[count] = s[count - 2] - q[count-1]*s[count - 1]; t[count..
삽입 정렬 삽입 정렬은 한 번에 한 항목씩 최종 정렬된 배열에서 자신의 위치를 찾아 삽입함으로 정렬을 완성하는 알고리즘이다. 시간 복잡도는 평균 O(n2)으로 퀵 정렬이나, 힙 정렬 또는 병합 정렬과 같은 고급 알고리즘보다 큰 목록에서 비효율적이다. 시간 복잡도의 최상은 O(n), 최악은 O(n2)이다. 다음 영상은 삽입 정렬의 동작 방식이다. 12345678910111213141516171819#include void insertion_sort(int arr[], int len) { for (int i = 1; i = 0 && key