2750번) 수 정렬하기 1

김동웅·2021년 1월 12일
0

algorithm

목록 보기
1/11

첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. 수는 중복되지 않는다.

출력 : 첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다.

EX) 입력 출력
5 1
5 2
2 3
3 4
4 5
1

1) _#include <stdio.h>
int n;
int a[1001];
int i,j;
int index; //
int main(){

scanf("%d",&n);

for(int i=0;i<n;i++){

scanf("%d",&a[i]);}

몇개의 숫자를 입력할지 n에 저장
a[0]~a[n] 까지 입력

2) for(i=0;i<n-1;i++)
{
for(j=1+i;j<n;j++)
{
if(a[i]>a[j])
{
index = a[j];
a[j] = a[i];
a[i] = index;
}
}
}

 1) a[0] > a[1]  ==>>  a[1]과 a[0]의 값을 서로 바꿈
1-1) a[0] > a[2] ==> a[2]와 a[0]의 값을 서로바꿈
1-2) a[0] > a[3] ==>> a[3]과 a[0]의 값을 서로바꿈
...
     a[0] > a[n-1] ==> a[n-1]과 a[0] 의값을 서로바꿈
     
 2) 1)의작업이 끝나면 a[1]과 그 뒤의 원소들을 이러한 방식으로 바꾼다
 3) 2)와같은 방식을 반복하여 마지막으로 a[n-2]>[n-1] 이면 a[n-2]와 a[n-1]의 값을 서로바꿈

for(int i=0;i<n;i++){
printf("%d\n",a[i]);
}

return 0;
}

4) 오름차순으로 바뀐 배열 원소 출력

		

0개의 댓글

Powered by GraphCDN, the GraphQL CDN