재현이는 알파벳 소문자로 이루어진 문자열 하나를 받아 그대로 두 번 연달아 썼다. 예를 들어 “abc” 를 받았다면 “abcabc” 를 썼다.
당신에게 문자열이 주어질 때, 이 문자열이 재현이가 만들어 낼 수 있는 문자열인지 판단하라.
[입력]
첫 번째 줄에 테스트 케이스의 수 TC가 주어진다. 이후 TC개의 테스트 케이스가 새 줄로 구분되어 주어진다. 각 테스트 케이스는 다음과 같이 구성되었다.
첫 번째 줄에 문자열의 길이 N이 주어진다. (1≤N≤100)
다음 줄에 길이 N의 알파벳 소문자 문자열 S가 주어진다.
[출력]
각 테스트 케이스 마다 한 줄씩, 재현이가 만드는 게 가능한 문자열이라면 “Yes”, 불가능한 문자열이라면 “No” 를 출력하라.
harAt(i) == charAt(i + N / 2) 비교import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Solution {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int test_case = Integer.parseInt(br.readLine());
for (int i = 1; i <= test_case; i++) {
int N = Integer.parseInt(br.readLine());
String str = br.readLine();
boolean isSame = false;
if (N % 2 == 0) {
for (int j = 0; j < N / 2; j++) {
if (str.charAt(j) == str.charAt(j + N / 2)) {
isSame = true;
}
else {
isSame = false;
break;
}
}
}
else {
isSame = false;
}
if (isSame) {
System.out.println("#" + i + " " + "Yes");
}
else if(!isSame) {
System.out.println("#" + i + " " + "No");
}
}
}
}
유익한 글이었습니다.