Algorithm 4

다시 풀어볼 문제들

https://www.acmicpc.net/problem/12865 12865번: 평범한 배낭 첫 줄에 물품의 수 N(1 ≤ N ≤ 100)과 준서가 버틸 수 있는 무게 K(1 ≤ K ≤ 100,000)가 주어진다. 두 번째 줄부터 N개의 줄에 거쳐 각 물건의 무게 W(1 ≤ W ≤ 100,000)와 해당 물건의 가치 V(0 ≤ V ≤ 1,000) www.acmicpc.net https://www.acmicpc.net/problem/2056 2056번: 작업 수행해야 할 작업 N개 (3 ≤ N ≤ 10000)가 있다. 각각의 작업마다 걸리는 시간(1 ≤ 시간 ≤ 100)이 정수로 주어진다. 몇몇 작업들 사이에는 선행 관계라는 게 있어서, 어떤 작업을 수행하기 위해 www.acmicpc.net https:..

Algorithm 2023.05.18

2020.09.02 - 삽입 정렬(insertion Sort), 퀵 정렬(Quick Sort)

* 삽입 정렬 : 각 숫자를 적절한 위치에 삽입하는 방식이다. 다른 정렬 방식들은 무조건 위치를 바꾸지만 삽입 정렬은 '필요할 때만' 위치를 바꾸게 된다. O(n^2) 이지만 선택, 버블 정렬에 비해 속도가 빠르다. 삽입 정렬은 기본적으로 왼쪽에 값들이 '정렬되어 있다는 가정'을 한다. 특정한 경우에 따라 매우 빠를 수도 있다. 왼쪽의 숫자와 비교하여 더 작은 값을 앞으로 배치한다. using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Insertaion_Sort { class Program { static void Main(strin..

Algorithm 2020.09.02

2020.09.02 - 선택 정렬(Selection Sort) / 버블 정렬(Bubble Sort)

* 선택 정렬(Selection Sort) : 가장 작은 수를 선택하여 가장 앞으로 보낸다. #include int main(void) { int i, j, min, index, temp; int array[10] = {1,10,5,8,7,6,4,3,2,9}; for(i=0; i array[j]) { min = array[j]; index = j; } } temp = array[i]; array[i] = array[index]; array[index] = temp; } for(i=0; i < 10; i++) { printf("%d ", array[i]); } return 0; } {1,10,5,8,7,6,4,3,2,9} 이 배열을 순서대로 나타내기 위한 실행 횟수는 10 + 9 + 8 + ... + 1 ..

Algorithm 2020.09.02