목록Algorithm/기타 (7)
기린의 기록을 위한 공간
[문제] https://www.acmicpc.net/problem/2751 [풀이]퀵정렬 이용 #include int number, data[1000001]; void quickSort(int *data, int start, int end){ if(start>=end){ return; } int key = start; int i = start+1, j= end, temp; while(i start){ j--; }if(i>j){ temp = data[j]; data[j]=data[key]; data[key]=temp; }else{ temp=data[i]; data[i]=data[j]; data[j]=temp; } } quickSort(data,start,j-1); quickSort(data,j+1,end)..
[문제] https://www.acmicpc.net/problem/2750[풀이]선택정렬을이용 #include int array[1001]; //데이터가 1000개니까 +1해서 배열을 선언함 int main(void) {int number, i, j, min, index, temp;//데이터의 개수 입력받음scanf("%d", &number); for (i = 0; i array[j]){ //최소값보다 작다면min = ..
[퀵정렬]선택정렬, 버블정렬, 삽입정렬에 비해서 굉장히 빠르다.분할정복 알고리즘(배열의 원소들을 나누어서 계산)으로 평균속도가 O(N*logN)이다.기준값(피벗)을 기준으로 큰 숫자와 작은 숫자를 반으로 나눈다음 정렬을 한 후 합친다.[문제] 3 7 8 1 5 9 6 10 2 4 를 순서대로 정렬하세요(피벗값은 보통 맨앞에있는 숫자로 한다) [풀이] #include int number = 10;int data[10] = { 1,10,5,8,7,6,4,3,2,9}; void quickSort(int* data, int start, int end) {if (start >= end) {return;}int key = start; //키는 첫번째 원소 int i = start + 1;// i는 왼쪽에서 출발해서..
[삽입정렬]각 숫자를 필요할때만 적당한 위치에 삽입하는 방법 [문제] 1,10,5,8,7,6,4,3,2,9 를 순서대로 정렬하세요[풀이] #include int main(void) {int i, j, temp;int array[10] = { 1,10,5,8,7,6,4,3,2,9 };for (i = 0; i array[j + 1]) { //왼쪽이 오른쪽보다 크면 위치를 바꿔줌temp = array[j];array[j] = array[j + 1];array[j + 1] = temp;j--;}}for (i = 0; i < 10; i++) {printf("%d", array[i]);}} ..
[버블정렬] 바로 옆에 있는 값과 비교해서 더 작은 값을 앞으로 보내준다.(가장큰 값을 맨 뒤로 보내줌)[문제] 1 10 5 8 7 6 4 3 2 9 를 순서대로 정렬하세요[풀이] #include int main(void) {int i, j, temp;int array[10] = {1,10,5,8,7,6,4,3,2,9};for (i = 0; i array[j + 1]) {temp = array[j+1];array[j+1] = array[j];array[j] = temp;}}}for (i = 0; i < 10; i++) {printf("%d", array[i..
[선택정렬]가장 작은 값을 선택해서 앞으로 보내준다 [문제] 1,10,5,8,7,6,4,3,2,9 를 순서대로 정렬하세요[풀이] #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보다 작다면min = array[j]; //min에 넣어줌index = j; //해당 위치값을 인덱스에 넣어줌//여기까지 한번탐색했을때 가장작은값을 선택함}}//스와핑 ..
[문제]https://programmers.co.kr/learn/courses/30/lessons/42576 [풀이1] Arrays.sort() 메소드를 이용하여 오름차순 정렬participant 1, 2, 3, 4, 5completion 1, 2, 3, 4 [코드] import java.util.Arrays;class Solution { public String solution(String[] participant, String[] completion) { String answer = ""; String temp = ""; Arrays.sort(participant); Arrays.sort(completion); int i = 0; while(i < completion.length){ if(!compl..