목록Algorithm (80)
Try
출처https://programmers.co.kr/learn/courses/30/lessons/42576 소스 123456789101112131415161718192021222324#include #include #include #include using namespace std; string solution(vector par, vector com) { string answer = ""; sort(par.begin(), par.end()); sort(com.begin(), com.end()); for(int i = 0; i
출처https://programmers.co.kr/learn/courses/30/lessons/12899 소스 1234567891011121314151617181920212223242526272829#include #include using namespace std; string solution(int n) { string arr[3] = {"4","1","2"}; string answer = ""; int index; while(n>0) { index = n % 3; if(index == 0) { n = n-1; } n = n / 3; answer = arr[index] + answer; } return answer;}Colored by Color Scriptercs
셸 정렬(Shell sort) 셸 정렬(영어: shell sort)은 가장 오래된 정렬 알고리즘의 하나이다. 이름은 1959년 이 방법을 발표한 창안자 도널드 셸의 이름을 따서 붙여졌다. 셸 정렬은 개념을 이해하고 구현하기는 쉬우나 시간복잡도 분석은 조금 복잡하다. 셸 정렬은 다음과 같은 삽입 정렬의 성질을 이용, 보완한 삽입정렬의 일반화로 볼 수 있다. 삽입 정렬은 입력되는 초기리스트가 "거의 정렬"되어 있을 경우 효율적이다.삽입 정렬은 한 번에 한 요소의 위치만 결정되기 때문에 비효율적이다.셸 정렬은 주어진 자료 리스트를 특정 매개변수 값의 길이를 갖는 부파일(subfile)로 쪼개서, 각 부파일에서 정렬을 수행한다. 즉, 매개변수 값에 따라 부파일(Subfile)이 발생하며, 매개변수값을 줄이며 이..
분할 합병 정렬(Merge Sort) 합병 정렬 또는 병합 정렬(merge sort)은 O(n log n) 비교 기반 정렬 알고리즘이다. 일반적인 방법으로 구현했을 때 이 정렬은 안정 정렬에 속하며, 분할 정복 알고리즘의 하나이다. 존 폰 노이만이 1945년에 개발했다. 소스 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687/*/* /* khsh5592@naver.com/* has3ong.tistory.com/* /* 2018 - 11 - 16/**/ #incl..
선택 정렬 (Selection Sort) 선택 정렬(selection sort)은 제자리 정렬 알고리즘의 하나로, 다음과 같은 순서로 이루어진다.주어진 리스트 중에 최소값을 찾는다.그 값을 맨 앞에 위치한 값과 교체한다(패스(pass)).맨 처음 위치를 뺀 나머지 리스트를 같은 방법으로 교체한다.비교하는 것이 상수 시간에 이루어진다는 가정 아래, n개의 주어진 리스트를 이와 같은 방법으로 정렬하는 데에는 Θ(n2) 만큼의 시간이 걸린다.선택 정렬은 알고리즘이 단순하며 사용할 수 있는 메모리가 제한적인 경우에 사용시 성능 상의 이점이 있습니다. 소스 12345678910111213141516171819202122232425262728293031323334353637383940414243444546/*/* ..
삽입정렬 (insertion sort) 삽입 정렬(insertion sort)은 자료 배열의 모든 요소를 앞에서부터 차례대로 이미 정렬된 배열 부분과 비교하여, 자신의 위치를 찾아 삽입함으로써 정렬을 완성하는 알고리즘이다. 소스 12345678910111213141516171819202122232425262728293031323334353637383940414243/*/* /* khsh5592@naver.com/* has3ong.tistory.com/* /* 2018 - 11 - 16/**/ #include #include #include using namespace std; int Data[10] = {9, 5, 12, 23, 4, 1, 18, 6, 3, 11}; void main(){ int leng..
출처https://programmers.co.kr/learn/courses/30/lessons/42586 소스 #include #include #include #include using namespace std;vector solution(vector pro, vector spe) { vector answer; queue q; for(int i = 0; i
출처https://programmers.co.kr/learn/courses/30/lessons/42588 소스 1234567891011121314151617181920212223242526272829303132333435#include #include #include using namespace std; vector solution(vector heights) { vector answer; for(int i = heights.size()-1; i>=0; i--) { for(int j = i-1; j>=0; j--) { if(i == 0) { answer.push_back(0); break; } else if(heights[j] > heights[i] && i != j) { answer.push_back(..
출처https://programmers.co.kr/learn/courses/30/lessons/14406 소스 #include using namespace std;int arr[10000000] = {0};long long solution(int N) { long long answer = 0;int i = 2; for(i = 2; i
출처https://programmers.co.kr/learn/courses/30/lessons/42842 소스 12345678910111213141516171819202122232425262728293031323334353637383940/*/* /* khsh5592@naver.com/* has3ong.tistory.com/* /* 2018 - 11 - 12/**/#include #include #include using namespace std; void Carfet(int brown, int red){ for(int i = 0; i