코드
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <algorithm>
using namespace std;
int main() {
int n;
char str[100001];
scanf("%d", &n);
scanf("%s", str);
if (n <= 25) {
printf("%s", str);
return 0;
}
else {
int cant = 0;
for(int i=11;i<n-12;i++)
if (str[i] == '.') {
cant = 1;
break;
}
if (!cant) {
for (int i = 0; i < 11; i++)
printf("%c", str[i]);
printf("...");
for (int i = n - 11; i < n; i++)
printf("%c", str[i]);
}
else {
for (int i = 0; i < 9; i++)
printf("%c", str[i]);
printf("......");
for (int i = n - 10; i < n; i++)
printf("%c", str[i]);
}
}
}
· 이 문제는 문제에서 제시한 조건에 따라 입력받은 값을 변형시켜서 출력하는 문제이다.
· 일단 조건이 세 개이므로 나누어서 생각해보았다. 처음에 문자열의 길이가 25 이하면 그냥 출력하라고 했으므로 처음에 문자열 길이가 25이하인지 확인하고, 아니라면 문자열의 12번째부터 문자열의 길이-12(맨 마지막 문자가 '.'일 때는 한 문장으로 취급되므로)까지 돌면서 '.'가 포함돼있는지 아닌지 확인해서 포함돼있으면 앞에서부터 9개 출력하고 '.' 6개 출력하고 문자열의 길이-10부터 맨 끝까지 출력하게 한다. 만일 한 문장 안에 포함돼있으면 앞에서부터 11개 출력하고 '.'3개 출력한 후에 문자열의 길이-11부터 맨 끝까지 출력하게 하면 모든 조건에 대한 대처방식의 로직이 만들어진다.
'programming' 카테고리의 다른 글
C언어 4차시 Layer7 과제 - 백준 19941 (0) | 2022.04.17 |
---|---|
C언어 4차시 Layer7 과제 - 백준 14467 (0) | 2022.04.17 |
C언어 4차시 Layer7 과제 - 백준 1065 (0) | 2022.04.17 |
Layer7 과제 - 백준 10872번 (0) | 2022.04.13 |
Layer7 과제 - 코드업 3373번 (0) | 2022.04.12 |