본문 바로가기
[C++] 알고리즘 교육/6. 문자열

[알고리즘 6.2.4] 문자열 - 문자열 정렬

by 안산학생 2019. 4. 25.

문제


n개의 문자열이 주어질 때, 이 문자열을 사전순으로 빠른 순서대로 정렬하는 프로그램을 작성하시오.  

입력


첫 번째 줄에 문자열의 개수 n이 주어진다 ( 1 ≤ n ≤ 100 ) 그 후 n개의 줄에 대하여 정렬하고자 하는 문자열이 주어진다 ( 1 ≤ 문자열의 길이 ≤ 100 )  

출력


문자열을 사전순으로 빠른 순서대로 정렬한 결과를 출력한다.

 

예제 입력

9 acid apple banana acquire cat crop crab power cat

예제 출력

acid acquire apple banana cat cat crab crop power

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#include<stdio.h>
#include<string.h>
 
void Sort(char (*str)[105], int n){
  int min;
  char temp[105];
  
  for(int i=0; i<n-1; i++){
    min = i;
    for(int k=i+1; k<n; k++){
      if(strcmp(str[min],str[k])>0){
        min = k;
      }
    }
    strcpy(temp, str[i]);
    strcpy(str[i],str[min]);
    strcpy(str[min],temp);
  }
}
 
int main(){
  
  int n;
  char str[105][105];
  
  scanf("%d",&n);
  
  for(int i=0; i<n; i++){
    scanf("%s",str[i]);
  }
  
  Sort(str, n);
  
  for(int i=0; i<n; i++){
    printf("%s\n",str[i]);
  }
  
  return 0;
}
 

댓글