본문 바로가기

알고리즘

[정보처리기사] 5행 5열 직각삼각형 - C언어 구현 //5행 5열 직각삼각형 #include int main() { int i, j, k(0); int arr[5][5]; for( i=0 ; i=0 ; j-- ) { ++k; arr[i][j] = k; } } for( i=0 ; i 더보기
[정보처리기사] 석차 구하기 - C언어 구현 #include #define MAX 5 int main() { int i, j; int jumsu[MAX]; int rank[MAX]; for(i=0 ; i 더보기
[정보처리기사] 이분 검색 - C언어 구현 #include #define MAX 10 int main() { int arr[MAX]; int i, j=1; int HIGH, LOW, MID; //배열 공간 초기화 for(i=0 ; i 더보기
[정보처리기사] 삽입 정렬 - C언어 구현 #include void insertion_sort( int *nArr, int nCount ) { int i(0), j(0); int key = 0; for( i=1 ; i=0 ; --j ) { if( nArr[j]>key ) { nArr[j+1] = nArr[j]; } else { break; } } nArr[j+1] = key; } int a = 9; } int main( ) { int nArr[] = { 7, 3, 8, 0, 2, 1, 5, 13, 6 }; int nCount = sizeof(nArr)/sizeof(*nArr); insertion_sort( nArr, nCount ); for( int i=0 ; i 더보기
[정보처리기사] 버블 정렬 - C언어 구현 #include #define MAX 10 int main() { int arr[MAX]; int i, j; int temp; printf("음수를 입력하면 종료\n\n"); while(1) { //입력 for(i=0 ; i 더보기
[정보처리기사] 선택 정렬 - C언어 구현 #include #define MAX 10 int main( ) { int arr[MAX]; int i, j; int temp; printf( "음수를 입력하면 종료\n\n" ); while(1) { //입력 for( i=0 ; i 더보기
[정보처리기사] 가까운 수 구하기 - C언어 구현 #include #define MAX 5 int main() { int arr[MAX]; int i(0); int inputNum, min(99999999); int d, k(0); //입력 부분 for(i=0 ; i 더보기
[정보처리기사] 배수의 개수와 합 - C언어 구현 //배수의 수와 합을 구함 #include int main() { printf("0을 입력하면 종료\n\n"); while(1) { int sum(0), cnt(0), i; int MUL, MAX; printf("구하려는 배수를 입력 : "); scanf("%d", &MUL); printf("몇까지 구할거임? : "); scanf("%d", &MAX); //0을 입력하면 종료 if(MUL == 0 || MAX == 0) { printf("0을 입력하여 종료함"); return 0; } //MAX 값이 구하려는 배수보다 크면 실행 if(MAX > MUL) { for( i=1 ; i MAX) { printf("ㅡㅡ"); } printf("\n\n\n"); } return 0; } 더보기
[정보처리기사] 최대값, 최소값 구하기 - C언어 구현 //최소, 최대값 구하기 #include #define STUDENT 5 int main() { int nScore, nCount(0), nMinScore(100), nMaxScore(0), nSum, nAvg; int i; for(i=0 ; i nMaxScore) { nMaxScore = nScore; } } printf("\n"); nSum = nMaxScore+nMinScore; nAvg = nSum/2; printf("입력 받은 개수 : %d\n", nCount); printf("최소값 : %d\n", nMinScore); printf("최대값 : %d\n", nMaxScore); printf("최소값, 최대값의 합 : %d\n", nSum); printf("최소값, 최대값의 합의 평균 : %d\.. 더보기
[정보처리기사] 약수 구하기 - C언어 구현 #include #include using namespace std; int main() { int nInput; printf("0을 입력하면 종료\n\n"); while(1) { vector vectorArr; printf("정수를 입력하세요 : "); scanf("%d", &nInput); if(nInput == 0) { return 0; } //약수 구하는 부분, 입력 값에서 /2 하므로써 효율적으로 변함. for( int i=1 ; i 더보기
[정보처리기사] 소인수 분해 - C언어 구현 0을 입력할 때까지 소인수를 구함. #include int main( ) { int i, j; int input, origin; int arr[100]; printf( "0 이하를 입력하면 종료\n\n" ); while( 1 ) { printf( "수를 입력하세요 : " ); scanf( "%d", &input ); if( input 1 ) { if( input%i == 0 ) { input = input/i; arr[j] = i; ++j; } if( input%i != 0 )i++; } //출력 if( origin != 1 ) { printf( "소인수분해 결과 : " ); for( i=0 ; i 더보기
[정보처리기사] 소수의 합 - C언어 구현 일반적인 방법으로 소수의 합을 구하는 코드인데, 100만이나 200만 범위 내의 소수의 합을 구하려면 너무 느려요 ㅠㅠ 큰 범위 내의 소수의 합을 빠르게 구하고 싶으면 에라토스테네스의 체를 이용하면 됩니다. //1부터 입력한 수까지 소수의 합 #include int prime( int a ); int main( ) { int input; int i; int sum; printf( "0을 입력하면 종료\n\n" ); while(1) { sum = 0; //입력 printf("양의 정수를 입력 : "); scanf( "%d", &input ); if( input==0 )return 0; //입력한 수까지 반복하고, 소수가 리턴되면서 누적 for( i=2 ; i 더보기
[정보처리기사] 1!+2!+3!+4!+···10!의 합 - C언어 구현 재귀호출로 처리#define _MAX 10 #include int factorial( int su ); int main( ) { int i, sum=0; for( i=1 ; i 더보기
[정보처리기사] 1+2+4+7+11+16+22... 의 합 - C언어 구현 이번에는 과정도 출력하며 _MAX 값을 바꿔줌에 따라 나열되는 항의 갯수가 바뀜 #define _MAX 20 #include int main( ) { int i=0, j=1; int sum=0; int arr[ _MAX ]; //계산 for( i=0 ; i 더보기