알고리즘(백준 등) 공부
SWEA 17319. 문자열문자열
posite
2026. 5. 2. 14:07
주어진 문자열이 같은 문자열 2개가 연결되어있는 문자열문자열 형태인지 확인하는 문제이다.
문자열의 길이, 문자열이 주어지는데 같은 문자열이 연결되어 있을 경우 길이가 짝수이므로 길이가 홀수인 문자열은 문자열문자열이 될 수 없다.
if(length % 2 == 1) {
sb.append("No").append('\n');
continue;
}
이후, 맨 앞부터 중간까지 중간부터 끝과 순서대로 문자를 비교하여 같지 않은 부분이 발견되면 이는 문자열문자열이 아니다. 비교 후, 같지 않은 부분이 없다면 문자열문자열이다.
for(int i=0; i<length/2; i++) {
if(str.charAt(i) != str.charAt(length/2 + i)) {
sb.append("No").append('\n');
continue outer;
}
}
sb.append("Yes").append('\n');
결과 코드는 다음과 같다.
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 T = Integer.parseInt(br.readLine());
StringBuilder sb = new StringBuilder();
outer: for (int tc = 1; tc <= T; tc++) {
sb.append('#').append(tc).append(' ');
int length = Integer.parseInt(br.readLine());
String str = br.readLine();
if(length % 2 == 1) {
sb.append("No").append('\n');
continue;
}
for(int i=0; i<length/2; i++) {
if(str.charAt(i) != str.charAt(length/2 + i)) {
sb.append("No").append('\n');
continue outer;
}
}
sb.append("Yes").append('\n');
}
br.close();
System.out.print(sb);
}
}