SWEA
SWEA - 17319 문자열문자열(c++)
Daekyue
2023. 11. 8. 20:50
처음 이 문제를 봤을 때 문제가 잘 이해가 되지 않았는데 문제를 바꿔서 적으니 이해가 되었다
재현이는 알파벳 소문자로 이루어진 문자열 하나를 받아 그대로 두 번 연달아 썼다
=> 재현이는 알파벳 소문자로 이루어진 문자열을 입력받으면 그 문자열을 두 번 출력한다
당신에게 문자열이 주어질 때, 이 문자열이 재현이가 만들어 낼 수 있는 문자열인지 판단하라.
=> 당신에게 주어진 문자열이, 재현이가 출력할 수 있는 문자열인지 판단하라
ex) abcabc => abc의 반복으로 재현이 만들 수 있다 ab=> 반복되지 않은 문자열이므로 재현이 만들 수 없다
[D3] 문자열문자열 - 17319
출처: SW Expert Academy, https://swexpertacademy.com/main/code/problem/problemList.do
#include<bits/stdc++.h>
using namespace std;
int main(int argc, char** argv)
{
int test_case;
int T;
cin >> T;
for (test_case = 1; test_case <= T; ++test_case)
{
int num = 0;
string str = "";
cin >> num;
cin >> str;
cout << "#" << test_case << " ";
if (num % 2 == 1)
{
cout << "No\n";
continue;
}
if (str.substr(0, (num / 2)) == str.substr((num / 2), num - 1))
cout << "Yes\n";
else
cout << "No\n";
}
return 0;//정상종료시 반드시 0을 리턴해야합니다.
}
문자열이 반복되었는지 확인하는 문제로 입력받은 str이 홀수이게 될 경우, str은 반복될 수 없고 num을 반으로 나눈 만큼 str을 잘라 앞 뒤를 비교하면 반복되었는지 확인할 수 있다