#include int main(){int i, j, k, N, temp, min = 0, num[100] = {0, };scanf("%d", &N);for(i = 0; i < N; i++){scanf("%d", &num[i]);}for(i = 0; i < N - 1; i++){min = i;for(j = i + 1; j < N; j++){if(num[j] < num[min]){min = j;}}temp = num[i];num[i] = num[min];num[min] = temp;for(k = 0; k < N; k++){printf("%d ", num[k]);}puts("");}}
1146 : 선택정렬제한시간: 1Sec 메모리제한: 32mb 해결횟수: 848회 시도횟수: 2469회 선택 정렬(selection sort)이란 내부정렬 알고리즘의 하나로 다음 순서대로 실행하여 정렬을 한다.1. 주어진 수열 중에 최소값을 찾는다. 2. 찾은 최소값을 맨 앞의 값과 자리를 바꾼다. 3. 맨 앞의 값을 뺀 나머지 수열을 같은 방법으로 전체 개수-1번 반복 실행한다.n개의 주어진 수열을 위와 같은 방법으로 정렬한다.수열이 주어지면 선택정렬의 과정을 한 단계씩 출력한다. 첫줄에 수열의 길이 N(4≤N≤100)이 주어진다. 두 번째 줄에 N개의 0이상 100이하의 정수가 주어진다. 처음 상태를 제외하고 정렬과정의 각 단계별 결과를 "출력형식"과 같이 출력한다. [Copy] 5 6 4 8 3 1 ..
1157 : 버블정렬제한시간: 1Sec 메모리제한: 32mb 해결횟수: 669회 시도횟수: 1167회 거품 정렬(Bubble sort)이란? 두 인접한 원소를 검사하여 자리를 바꾸는 과정을 반복하며 정렬하는 방법이다.다음과 같은 과정으로 정렬을 한다. 1. 첫번째 값과 두번째 값을 비교하여 첫번째 값이 크면 자리를 바꾼다. 2. 두번째 값과 세번째 값을 비교하여 두번째 값이 크면 자리를 바꾼다. 3. 위와 같이 반복하여 N-1번째 값과 N번째 값을 비교하여 N-1번째 값이 크면 자리를 바꾼다. 이 단계가 끝나면 N번째에 가장 큰 수가 자리하게 된다. (한단계완료) 4. N번째를 제외하고 1~3을 반복하면 N-1번째에 두 번째로 큰수가 자리한다. (2단계 완료) 5. 위와같은 작업을 N-1번 반복하면 모든..
출처: http://en.wikipedia.org/wiki/Bubble_sort 방금 예제를 풀고 얕은 지식으로 쓴거니 확실히 알고싶은분은 출처에 가서 읽어보세요! 정수 5개로 예를 들면 First Pass:( 5 1 4 2 8 ) \to ( 1 5 4 2 8 ), 첫 번째 원소와 두 번째 원소를 비교한다. 그리고 두번째 원소가 값이 더 작다면 첫 번째 원소와 두 번째 원소를 스왑.( 1 5 4 2 8 ) \to ( 1 4 5 2 8 ), 위와 같이 5가 4보다 크기 때문에 5와 4를 스왑 -> 4 - 5( 1 4 5 2 8 ) \to ( 1 4 2 5 8 ), 마찬가지( 1 4 2 5 8 ) \to ( 1 4 2 5 8 ), 이번엔 5가 8보다 크지 않기 때문에 스왑하지 않는다. 첫 번째 예제와 같이 ..
#include void HanoiTowerMove(int num, char from, char by, char to){if(num == 1){printf("1 : %c -> %c\n", from, to);}else{HanoiTowerMove(num - 1, from, to, by);printf("%d : %c -> %c\n", num, from, to);HanoiTowerMove(num - 1, by, from, to);}} int main(){int num = 0;scanf("%d", &num);HanoiTowerMove(num, 'A', 'B', 'C');return 0;}
1307 : 문자사각형1제한시간: 1Sec 메모리제한: 64mb 해결횟수: 1043회 시도횟수: 2572회 정사각형의 한 변의 길이 n을 입력받은 후 다음과 같은 문자로 된 정사각형 형태로 출력하는 프로그램을 작성하시오. 문자의 진행 순서는 맨 오른쪽 아래에서 위쪽으로 'A'부터 차례대로 채워나가는 방법으로 아래 표와 같이 왼쪽 위까지 채워 넣는다. 'Z' 다음에는 다시 'A'부터 반복된다. 정사각형 한 변의 길이 n(n의 범위는 1이상 100 이하의 정수)을 입력받는다. 위의 형식과 같이 한변의 길이가 n인 문자 사각형을 출력한다. 문자 사이는 공백으로 구분하여 출력한다. [Copy] 4 [Copy] P L H D O K G C N J F B M I E A #include int mai..
1303 : 숫자사각형1제한시간: 1Sec 메모리제한: 128mb 해결횟수: 1909회 시도횟수: 4365회 사각형의 높이 n과 너비 m을 입력받은 후 n행 m열의 사각형 형태로 1부터 n*m번까지 숫자가 차례대로 출력되는 프로그램을 작성하시오. 숫자의 진행 순서는 처음에 맨 윗줄의 왼쪽에서 오른쪽으로 1부터 차례대로 너비 m만큼 출력한 후 다음 줄로 바꾸어서 다시 왼쪽에서 오른쪽으로 1씩 증가하면서 출력하는 방법으로 n번 줄까지 반복한다. 사각형의 높이n와 너비m( n과 m의 범위는 100 이하의 정수)을 입력받는다. 위에서 형태의 직사각형을 입력에서 들어온 높이 n과 너비 m에 맞춰서 출력한다. 숫자 사이는 공백으로 구분한다. [Copy] 4 5 [Copy] 1 2 3 4 5 6 7 ..
1856 : 숫자사각형2제한시간: 1Sec 메모리제한: 0mb 해결횟수: 2082회 시도횟수: 5045회 사각형의 높이 n과 너비 m을 입력받은 후 사각형 내부에 지그재그 형태로 1부터 n*m번까지 숫자가 차례대로 출력되는 프로그램을 작성하시오. 숫자의 진행 순서는 처음에 왼쪽에서 오른쪽으로 너비 m만큼 진행 한 후 방향을 바꾸어서 이를 반복한다. 사각형의 높이n와 너비m( n과 m의 범위는 100 이하의 정수)을 입력받는다. 위에서 형태의 직사각형을 입력에서 들어온 높이 n과 너비 m에 맞춰서 출력한다. 숫자 사이는 공백으로 구분한다. [Copy] 4 5 [Copy] 1 2 3 4 5 10 9 8 7 6 11 12 13 14 15 20 19 18 17 16#include #include..
1304 : 숫자사각형3제한시간: 1Sec 메모리제한: 32mb 해결횟수: 1337회 시도횟수: 2133회 정사각형의 한 변의 길이 n을 입력받은 후 다음과 같이 숫자로 된 정사각형 형태로 출력하는 프로그램을 작성하시오. 숫자의 진행 순서는 처음에 왼쪽 위에서 아래쪽으로 n만큼 진행 한 후 바로 오른쪽 위에서 다시 아래쪽으로 진행하는 방법으로 정사각형이 될 때까지 반복한다. 정사각형 한 변의 길이 n(n의 범위는 100 이하의 자연수)을 입력받는다. 위의 형식과 같이 한 변의 길이가 n인 숫자 사각형을 출력한다. 숫자 사이는 공백으로 구분하여 출력한다. [Copy] 4 [Copy] 1 5 9 13 2 6 10 14 3 7 11 15 4 8 12 16#include int main() { ..
Contact: j0n9m1n1@gmail.com