멤고리즘 랭킹


문제 

요즘 멤고리즘 랭킹은 준수가 직접 수작업으로 계산하고 있다. 

그래서, 힘든 우리 준수를 위해 랭킹을 정해주는 프로그램을 만들어 주려고 한다. 


프로그램의 규칙의 다음과 같다.

85점, 105점, 92점을 받았다면, 각각 3등, 1등, 2등이다. 드물게 동점자가 나오는 경우도 있다. 예로 90, 100, 90, 80 점을 맞은 경우에는, 2등, 1등, 2등, 4등으로 처리하도록 한다. 

 

입력

첫째 줄에는 사람의 수 N(1000 이하 정수)이 주어진다. 

다음줄부터는 각 사람의 점수가 주어진다. 점수는 1000 이하의 정수이다. 

출력

입력된 순서대로 각 사람이 몇 등인지를 출력한다. 

 

예제 입력​

5
97
65
84
84
91

예제 출력

1
5
3
3
2


출제자 : 박종범


Posted by 밍쫑
,

단기 집중 교육의 5일차 입니다.

교육 마지막날! 전문가 과정이라 어려운 것도 있는데.. 매일 이 과제 저 과제 하느라 밤새다보니

복습도 못하고, 수업때 졸고... 좋은 수업 놓친게 많아서 큰일이네요..

마지막 날 강의도 포스팅 열심히 정리해보겠습니다.


오늘의 시작은 재귀호출입니다.



파일명 : 1.c




파일명 : 2.c

버블 소트

정렬이 끝난 빨간색은 나중에 아직 정렬되지 않은 것들을 정렬할 때에는 빼고 정렬해야한다.

그러므로 소스 코드 중에서 for(j=0; j < len -1 - i; j++) 주의해야한다.


선택 정렬(selection sort)

위에 소스에서 void sort() 부분만 조금만 수정되었습니다.




빠른 정렬(Quick Sort)




파일명 : 3.c

알고리즘 교체 전략



//오름차순과 내림차순 정렬이 중복되어 있는 소스코드
#include  <stdio.h>

#define swap(x, y, T) do { T t = x; x= y; y = t; } while(0)

void ask_sort(int arr[], int len) {
	int i, j;
	for(i=0 ; i<len-1 ; i++){
		for(j=0 ; j<len-1 -i ; j++){
			if(arr[j] > arr[j+1])
				swap(arr[j], arr[j+1], int);
		}
	}
}

void des_sort(int arr[], int len) {
	int i, j;
	for(i=0 ; i<len-1 ; i++){
		for(j=0 ; j<len-1 -i ; j++){
			if(arr[j] < arr[j+1])
				swap(arr[j], arr[j+1], int);
		}
	}
}

void display(int arr[], int len) {
	int i;
	for(i=0;i<len;i++)
		printf("%2d ", arr[i]);
	getchar();
}

void main() {
	int arr[10] = {1,3,5,7,9,2,4,6,8,10};

	display(arr,10);
	ask_sort(arr, 10);
	display(arr,10);
	des_sort(arr, 10);
}

2

파일명 : 4.c

메모리 누수 탐지 프로그램의 구현

5



0.asm


0.cpp


0.exe


0.obj


1.c


2.c


3.asm


3.c


3.exe


3.obj




Posted by 밍쫑
,