C언어 문제풀이
SWEA 17319번: 문자열문자열 (D3)
지식보부상님
2023. 11. 6. 23:17
재현이는 알파벳 소문자로 이루어진 문자열 하나를 받아 그대로 두 번 연달아 썼다. 예를 들어 “abc” 를 받았다면 “abcabc” 를 썼다. 당신에게 문자열이 주어질 때, 이 문자열이 재현이가 만들어 낼 수 있는 문자열인지 판단하라. [입력] 첫 번째 줄에 테스트 케이스의 수 TC가 주어진다. 이후 TC개의 테스트 케이스가 새 줄로 구분되어 주어진다. 각 테스트 케이스는 다음과 같이 구성되었다. - 첫 번째 줄에 문자열의 길이 N이 주어진다. (1≤N≤100) - 다음 줄에 길이 N의 알파벳 소문자 문자열 S가 주어진다. [출력] 각 테스트 케이스 마다 한 줄씩, 재현이가 만드는 게 가능한 문자열이라면 “Yes”, 불가능한 문자열이라면 “No” 를 출력하라. |
#include <stdio.h>
#include <stdlib.h>
int main() {
int TC, N;
int i, j;
int check = 0;
char S[100];
scanf("%d", &TC);
for (i = 0; i < TC; i++) {
check=0;
scanf("%d", &N);
scanf("%s", &S);
if (N % 2 == 1) {
printf("#%d No\n", i + 1);
}
else {
for (j = 0; j < N / 2; j++) {
if (S[j] == S[j + N / 2])
check++;
else
break;
}
if (check == N / 2)
printf("#%d Yes\n", i + 1);
else
printf("#%d No\n", i + 1);
}
}
return 0;
}