02_N 개의 길이 가 최대 1000 에 이 를 수 있 는 수 를 정렬 하고 주어진 문자열 을 찾 아 중복 되 는 문 자 를 찾 아 그 위 치 를 제시 하고 일련의 정 수 를 입력 하여 그 중에서 가장 큰 수 를 골 라 내 고 나머지 수 를 정렬 합 니 다.
4183 단어 알고리즘정렬문자열대학원 에 진학 하 다
N 개의 길이 가 최대 1000 에 달 하 는 수 를 정렬 합 니 다.
입력:
첫 번 째 행동 의 정수 N 을 입력 하 십시오. (1 < = N < = 100)
다음 N 줄 은 줄 마다 하나의 수가 있 고 수의 길이 범 위 는 1 < = len < = 1000 입 니 다.
모든 수 는 하나의 정수 이 며 접두사 0 이 포함 되 지 않도록 보증 합 니 다.
출력:
여러 그룹의 테스트 데이터 가 있 을 수 있 습 니 다. 각 그룹의 데이터 에 대해 제 시 된 N 개 수 를 작은 것 에서 큰 것 으로 정렬 하고 출력 정렬 후의 결 과 는 각각 한 줄 을 차지 합 니 다.
샘플 입력:
3
11111111111111111111111111111
2222222222222222222222222222222222
33333333
샘플 출력:
33333333
11111111111111111111111111111
2222222222222222222222222222222222
답안 을 참고 하 다
#include<stdio.h>
#include<string.h>
// n 1000
void sortnum(char num[100][1000], int n)
{
char temp[1000];
int k, i;
//
for(k=0; k<n; k++)
{
scanf("%s", num[k]);
}
for(i=0; i<n; i++)
{
for(k=0; k<n-i-1; k++)
{
if(strlen(num[k]) > strlen(num[k+1]))
{
strcpy(temp, num[k]);
strcpy(num[k], num[k+1]);
strcpy(num[k+1], temp);
}
else if(strlen(num[k]) == strlen(num[k+1]) && strcmp(num[k], num[k+1])>0)
{
strcpy(temp, num[k]);
strcpy(num[k], num[k+1]);
strcpy(num[k+1], temp);
}
}
}
}
//
void output(char num[100][1000], int n)
{
for(int k=0; k<n; k++)
{
printf("%s
", num[k]);
}
}
int main()
{
char num[100][1000];
int n;
while(scanf("%d", &n) != EOF)
{
sortnum(num, n);
output(num, n);
}
return 0;
}
2. 제목 설명:
주어진 문자열 에 대해 중복 되 는 문 자 를 찾 아 위 치 를 알려 줍 니 다. 예 를 들 어 abcaaAB12ab 12.
출력: a, 1;a,4;a,5;a,10,b,2;b,11,1,8;1,12, 2,9;2,13。
입력:
알파벳 과 숫자 로 구 성 된 문자열 을 입력 하 십시오. 길이 가 100 을 넘 지 않 습 니 다.
출력:
여러 그룹의 테스트 데이터 가 있 을 수 있 습 니 다. 각 그룹의 데이터 에 대해 서 는...
샘플 출력 형식 에 따라 문자 가 나타 나 는 위 치 를 표시 합 니 다.
샘플 입력:
abcaaAB12ab12
샘플 출력:
a:0,a:3,a:4,a:9
b:1,b:10
1:7,1:11
2:8,2:12
알림:
1. 아래 표 시 는 0 부터 시작 합 니 다.
2. 같은 자모 가 한 줄 에 나타 난 위 치 를 나타 낸다.
답안 을 참고 하 다
#include<stdio.h>
#include<string.h>
typedef struct ch_arr{
int index[101]; //
int p; //
int flag; //
}ch_arr;
int main()
{
ch_arr temp[130];
char str[101];
int k, t;
while(scanf("%s", str) != EOF)
{
//
for(k=0; k<130; k++)
{
temp[k].p = 0;
temp[k].flag = 0; //flag
}
//
for(k=0; k<strlen(str); k++)
{
temp[str[k]].index[temp[str[k]].p] = k;
temp[str[k]].p++;
}
//
for(k=0; k<strlen(str); k++)
{
if(temp[str[k]].p>1 && 0==temp[str[k]].flag)
{
for(t=0; t<temp[str[k]].p-1; t++)
{
printf("%c:%d,", str[k], temp[str[k]].index[t]);
}
printf("%c:%d
", str[k], temp[str[k]].index[t]);
temp[str[k]].flag = 1;
}
}
}
return 0;
}
3. 제목 설명:
일련의 정 수 를 입력 하여 그 중에서 가장 큰 수 를 골 라 내 고 나머지 수 를 정렬 합 니 다.
입력:
첫 번 째 줄 을 입력 하면 정수 N, 1 < = N < = 1000 을 포함 하고 입력 데이터 의 개 수 를 대표 합 니 다.
다음 줄 에는 N 개의 정수 가 있다.
출력:
여러 그룹의 테스트 데이터 가 있 을 수 있 습 니 다. 각 그룹의 데이터 에 대해 서 는...
첫 번 째 줄 은 하나의 정 수 를 출력 하여 N 개의 정수 중 최대 치 를 나타 내 고 이 값 을 배열 에서 제거 하여 나머지 수 를 정렬 합 니 다.
두 번 째 줄 은 정렬 된 결 과 를 출력 합 니 다.
샘플 입력:
4
1 3 4 2
샘플 출력:
4
1 2 3
알림:
배열 에 숫자 가 하나 밖 에 없다 면 첫 번 째 줄 이 출력 되면 두 번 째 줄 은 '- 1' 을 출력 하 십시오.
답안 을 참고 하 다
#include<stdio.h>
int main()
{
int i, k, arr[1000], n;
while(scanf("%d", &n) != EOF)
{
for(i=0; i<n; i++)
{
scanf("%d", &arr[i]);
}
if(n>1)
{
for(i=0; i<n; i++)
{
for(k=0; k<n-i-1; k++)
{
if(arr[k]>arr[k+1])
{
arr[k] = arr[k] + arr[k+1];
arr[k+1] = arr[k] - arr[k+1];
arr[k] = arr[k] - arr[k+1];
}
}
}
printf("%d
", arr[n-1]);
for(i=0; i<n-2; i++)
{
printf("%d ", arr[i]);
}
printf("%d
", arr[n-2]);
}
else
{
printf("%d
", arr[0]);
printf("-1
");
}
}
return 0;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
【Codility Lesson3】FrogJmpA small frog wants to get to the other side of the road. The frog is currently located at position X and wants to get to...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.